const {window, navigator, screen, location, String, Image, document, history,
    Headers,Request,WebSocket,DOMException,indexedDB,PluginArray} = require('./myProxy')
// var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

global = window
var glb;
glb = window._$jsvmprt = function (b, e, f) {
    function a() {
        if ("undefined" == typeof Reflect || !Reflect.construct)
            return !1;
        if (Reflect.construct.sham)
            return !1;
        if ("function" == typeof Proxy)
            return !0;
        try {
            return Date.prototype.toString.call(Reflect.construct(Date, [], (function () {}))), !0
        } catch (b) {
            return !1
        }
    }

    function d(b, e, f) {
        return (d = a() ? Reflect.construct : function (b, e, f) {
            var a = [null];
            a.push.apply(a, e);
            var d = new(Function.bind.apply(b, a));
            return f && c(d, f.prototype),
                d
        }).apply(null, arguments)
    }

    function c(b, e) {
        return (c = Object.setPrototypeOf || function (b, e) {
            return b.__proto__ = e,
                b
        })(b, e)
    }

    function n(b) {
        return function (b) {
            if (Array.isArray(b)) {
                for (var e = 0, f = new Array(b.length); e < b.length; e++)
                    f[e] = b[e];
                return f
            }
        }(b) || function (b) {
            if (Symbol.iterator in Object(b) || "[object Arguments]" === Object.prototype.toString.call(b))
                return Array.from(b)
        }(b) || function () {
            throw new TypeError("Invalid attempt to spread non-iterable instance")
        }()
    }
    for (var i = [], r = 0, t = [], o = 0, l = function (b, e) {
        var f = b[e++],
            a = b[e],
            d = parseInt("" + f + a, 16);
        if (d >> 7 == 0)
            return [1, d];
        if (d >> 6 == 2) {
            var c = parseInt("" + b[++e] + b[++e], 16);
            return d &= 63, [2, c = (d <<= 8) + c]
        }
        if (d >> 6 == 3) {
            var n = parseInt("" + b[++e] + b[++e], 16),
                i = parseInt("" + b[++e] + b[++e], 16);
            return d &= 63, [3, i = (d <<= 16) + (n <<= 8) + i]
        }
    }, u = function (b, e) {
        var f = parseInt("" + b[e] + b[e + 1], 16);
        return f = f > 127 ? -256 + f : f
    }, s = function (b, e) {
        var f = parseInt("" + b[e] + b[e + 1] + b[e + 2] + b[e + 3], 16);
        return f = f > 32767 ? -65536 + f : f
    }, p = function (b, e) {
        var f = parseInt("" + b[e] + b[e + 1] + b[e + 2] + b[e + 3] + b[e + 4] + b[e + 5] + b[e + 6] + b[e + 7], 16);
        return f = f > 2147483647 ? 0 + f : f
    }, y = function (b, e) {
        return parseInt("" + b[e] + b[e + 1], 16)
    }, v = function (b, e) {
        return parseInt("" + b[e] + b[e + 1] + b[e + 2] + b[e + 3], 16)
    }, g = g || this || window, h = Object.keys || function (b) {
        var e = {},
            f = 0;
        for (var a in b)
            e[f++] = a;
        return e.length = f,
            e
    }, m = (b.length,
        0), I = "", C = m; C < m + 16; C++) {
        var q = "" + b[C++] + b[C];
        q = parseInt(q, 16),
            I += String.fromCharCode(q)
    }
    if ("HNOJ@?RC" != I)
        throw new Error("error magic number " + I);
    m += 16;
    parseInt("" + b[m] + b[m + 1], 16);
    m += 8,
        r = 0;
    for (var w = 0; w < 4; w++) {
        var S = m + 2 * w,
            R = "" + b[S++] + b[S],
            x = parseInt(R, 16);
        r += (3 & x) << 2 * w
    }
    m += 16,
        m += 8;
    var z = parseInt("" + b[m] + b[m + 1] + b[m + 2] + b[m + 3] + b[m + 4] + b[m + 5] + b[m + 6] + b[m + 7], 16),
        O = z,
        E = m += 8,
        j = v(b, m += z);
    j[1];
    m += 4,
        i = {
            p: [],
            q: []
        };
    for (var A = 0; A < j; A++) {
        for (var D = l(b, m), T = m += 2 * D[0], $ = i.p.length, P = 0; P < D[1]; P++) {
            var U = l(b, T);
            i.p.push(U[1]),
                T += 2 * U[0]
        }
        m = T,
            i.q.push([$, i.p.length])
    }
    var _ = {
            5: 1,
            6: 1,
            70: 1,
            22: 1,
            23: 1,
            37: 1,
            73: 1
        },
        k = {
            72: 1
        },
        M = {
            74: 1
        },
        H = {
            11: 1,
            12: 1,
            24: 1,
            26: 1,
            27: 1,
            31: 1
        },
        J = {
            10: 1
        },
        N = {
            2: 1,
            29: 1,
            30: 1,
            20: 1
        },
        B = [],
        W = [];

    function F(b, e, f) {
        for (var a = e; a < e + f;) {
            var d = y(b, a);
            B[a] = d,
                a += 2;
            k[d] ? (W[a] = u(b, a),
                a += 2) : _[d] ? (W[a] = s(b, a),
                a += 4) : M[d] ? (W[a] = p(b, a),
                a += 8) : H[d] ? (W[a] = y(b, a),
                a += 2) : J[d] ? (W[a] = v(b, a),
                a += 4) : N[d] && (W[a] = v(b, a),
                a += 4)
        }
    }
    return K(b, E, O / 2, [], e, f);

    function G(b, e, f, a, c, l, m, I) {
        null == l && (l = this);
        var C, q, w, S = [],
            R = 0;
        m && (C = m);
        var x, z, O = e,
            E = O + 2 * f;
        if (!I)
            for (; O < E;) {
                // console.log("[I is false]S-----> " + S +" R-----> " + R +" O-----> " + O + " E----->" + E)
                // if (O === 29802 && E === 43890 && R === 0){
                //     debugger
                // }
                var j = parseInt("" + b[O] + b[O + 1], 16);
                O += 2;
                var A = 3 & (x = 13 * j % 241);
                if (x >>= 2,
                A < 1) {
                    A = 3 & x;
                    if (x >>= 2,
                    A > 2)
                        (A = x) > 10 ? S[++R] = void 0 : A > 1 ? (C = S[R--],
                            S[R] = S[R] >= C) : A > -1 && (S[++R] = null);
                    else if (A > 1) {
                        if ((A = x) > 11)
                            throw S[R--];
                        if (A > 7) {
                            for (C = S[R--],
                                     z = v(b, O),
                                     A = "",
                                     P = i.q[z][0]; P < i.q[z][1]; P++)
                                A += String.fromCharCode(r ^ i.p[P]);
                            // console.log("[1]:fromCharCode result:", A)
                            O += 4,
                                S[R--][A] = C
                        } else
                            A > 5 && (S[R] = h(S[R]))
                    } else if (A > 0) {
                        (A = x) > 8 ? (C = S[R--],
                            S[R] = typeof C) : A > 6 ? S[R] = --S[R] : A > 4 ? S[R -= 1] = S[R][S[R + 1]] : A > 2 && (q = S[R--], (A = S[R]).x === G ? A.y >= 1 ? S[R] = K(b, A.c, A.l, [q], A.z, w, null, 1) : (S[R] = K(b, A.c, A.l, [q], A.z, w, null, 0),
                            A.y++) : S[R] = A(q))
                    } else {
                        if ((A = x) > 14)
                            z = s(b, O), (U = function e() {
                                var f = arguments;
                                return e.y > 0 ? K(b, e.c, e.l, f, e.z, this, null, 0) : (e.y++,
                                    K(b, e.c, e.l, f, e.z, this, null, 0))
                            }).c = O + 4,
                                U.l = z - 2,
                                U.x = G,
                                U.y = 0,
                                U.z = c,
                                S[R] = U,
                                O += 2 * z - 2;
                        else if (A > 12)
                            q = S[R--],
                                w = S[R--], (A = S[R--]).x === G ? A.y >= 1 ? S[++R] = K(b, A.c, A.l, q, A.z, w, null, 1) : (S[++R] = K(b, A.c, A.l, q, A.z, w, null, 0),
                                A.y++) : S[++R] = A.apply(w, q);
                        else if (A > 5)
                            C = S[R--],
                                S[R] = S[R] != C;
                        else if (A > 3)
                            C = S[R--],
                                S[R] = S[R] * C;
                        else if (A > -1)
                            return [1, S[R--]]
                    }
                } else if (A < 2) {
                    A = 3 & x;
                    if (x >>= 2,
                    A < 1) {
                        if ((A = x) > 9)
                            ;
                        else if (A > 7)
                            C = S[R--],
                                S[R] = S[R] & C;
                        else if (A > 5)
                            z = y(b, O),
                                O += 2,
                                S[R -= z] = 0 === z ? new S[R] : d(S[R], n(S.slice(R + 1, R + z + 1)));
                        else if (A > 3) {
                            z = s(b, O);
                            try {
                                if (t[o][2] = 1,
                                1 == (C = G(b, O + 4, z - 3, [], c, l, null, 0))[0])
                                    return C
                            } catch (m) {
                                if (t[o] && t[o][1] && 1 == (C = G(b, t[o][1][0], t[o][1][1], [], c, l, m, 0))[0])
                                    return C
                            } finally {
                                if (t[o] && t[o][0] && 1 == (C = G(b, t[o][0][0], t[o][0][1], [], c, l, null, 0))[0])
                                    return C;
                                t[o] = 0,
                                    o--
                            }
                            O += 2 * z - 2
                        }
                    } else if (A < 2) {
                        if ((A = x) > 12)
                            S[++R] = u(b, O),
                                O += 2;
                        else if (A > 10)
                            C = S[R--],
                                S[R] = S[R] << C;
                        else if (A > 8) {
                            for (z = v(b, O),
                                     A = "",
                                     P = i.q[z][0]; P < i.q[z][1]; P++)
                                A += String.fromCharCode(r ^ i.p[P]);
                            // console.log("[2]:fromCharCode result:", A)
                            O += 4,
                                S[R] = S[R][A]
                        } else
                            A > 6 && (q = S[R--],
                                C = delete S[R--][q])
                    } else if (A < 3) {
                        (A = x) < 2 ? S[++R] = C : A < 4 ? (C = S[R--],
                            S[R] = S[R] <= C) : A < 11 ? (C = S[R -= 2][S[R + 1]] = S[R + 2],
                            R--) : A < 13 && (C = S[R],
                            S[++R] = C)
                    } else {
                        if ((A = x) > 12)
                            S[++R] = l;
                        else if (A > 5)
                            C = S[R--],
                                S[R] = S[R] !== C;
                        else if (A > 3)
                            C = S[R--],
                                S[R] = S[R] / C;
                        else if (A > 1) {
                            if ((z = s(b, O)) < 0) {
                                I = 1,
                                    F(b, e, 2 * f),
                                    O += 2 * z - 2;
                                break
                            }
                            O += 2 * z - 2
                        } else
                            A > -1 && (S[R] = !S[R])
                    }
                } else if (A < 3) {
                    A = 3 & x;
                    if (x >>= 2,
                    A > 2)
                        (A = x) > 7 ? (C = S[R--],
                            S[R] = S[R] | C) : A > 5 ? (z = y(b, O),
                            O += 2,
                            S[++R] = c["$" + z]) : A > 3 && (z = s(b, O),
                            t[o][0] && !t[o][2] ? t[o][1] = [O + 4, z - 3] : t[o++] = [0, [O + 4, z - 3], 0],
                            O += 2 * z - 2);
                    else if (A > 1) {
                        if ((A = x) < 2) {
                            for (z = v(b, O),
                                     C = "",
                                     P = i.q[z][0]; P < i.q[z][1]; P++)
                                C += String.fromCharCode(r ^ i.p[P]);
                            // console.log("[3]:fromCharCode result:", C)
                            S[++R] = C,
                                O += 4
                        } else if (A < 4)
                            if (S[R--])
                                O += 4;
                            else {
                                if ((z = s(b, O)) < 0) {
                                    I = 1,
                                        F(b, e, 2 * f),
                                        O += 2 * z - 2;
                                    break
                                }
                                O += 2 * z - 2
                            } else
                            A < 6 ? (C = S[R--],
                                S[R] = S[R] % C) : A < 8 ? (C = S[R--],
                                S[R] = S[R] instanceof C) : A < 15 && (S[++R] = !1)
                    } else if (A > 0) {
                        (A = x) < 1 ? S[++R] = g : A < 3 ? (C = S[R--],
                            S[R] = S[R] + C) : A < 5 ? (C = S[R--],
                            S[R] = S[R] == C) : A < 14 && (C = S[R - 1],
                            q = S[R],
                            S[++R] = C,
                            S[++R] = q)
                    } else {
                        (A = x) < 2 ? (C = S[R--],
                            S[R] = S[R] > C) : A < 9 ? (z = v(b, O),
                            O += 4,
                            q = R + 1,
                            S[R -= z - 1] = z ? S.slice(R, q) : []) : A < 11 ? (z = y(b, O),
                            O += 2,
                            C = S[R--],
                            c[z] = C) : A < 13 ? (C = S[R--],
                            S[R] = S[R] >> C) : A < 15 && (S[++R] = s(b, O),
                            O += 4)
                    }
                } else {
                    A = 3 & x;
                    if (x >>= 2,
                    A > 2)
                        (A = x) > 13 ? (S[++R] = p(b, O),
                            O += 8) : A > 11 ? (C = S[R--],
                            S[R] = S[R] >>> C) : A > 9 ? S[++R] = !0 : A > 7 ? (z = y(b, O),
                            O += 2,
                            S[R] = S[R][z]) : A > 0 && (C = S[R--],
                            S[R] = S[R] < C);
                    else if (A > 1) {
                        (A = x) > 10 ? (z = s(b, O),
                            t[++o] = [
                                [O + 4, z - 3], 0, 0
                            ],
                            O += 2 * z - 2) : A > 8 ? (C = S[R--],
                            S[R] = S[R] ^ C) : A > 6 && (C = S[R--])
                    } else if (A > 0) {
                        if ((A = x) < 3) {
                            var D = 0,
                                T = S[R].length,
                                $ = S[R];
                            S[++R] = function () {
                                var b = D < T;
                                if (b) {
                                    var e = $[D++];
                                    S[++R] = e
                                }
                                S[++R] = b
                            }
                        } else
                            A < 5 ? (z = y(b, O),
                                O += 2,
                                C = c[z],
                                S[++R] = C) : A < 7 ? S[R] = ++S[R] : A < 9 && (C = S[R--],
                                S[R] = S[R] in C)
                    } else {
                        if ((A = x) > 13)
                            C = S[R],
                                S[R] = S[R - 1],
                                S[R - 1] = C;
                        else if (A > 4)
                            C = S[R--],
                                S[R] = S[R] === C;
                        else if (A > 2)
                            C = S[R--],
                                S[R] = S[R] - C;
                        else if (A > 0) {
                            for (z = v(b, O),
                                     A = "",
                                     P = i.q[z][0]; P < i.q[z][1]; P++)
                                A += String.fromCharCode(r ^ i.p[P]);
                            // console.log("[4]:fromCharCode result:", A)
                            A = +A,
                                O += 4,
                                S[++R] = A
                        }
                    }
                }
            }
        if (I)
            for (; O < E;) {
                // if (O === 3682 && E === 3794 && R === 21){
                //     debugger
                // }
                // console.log("[I is true]S-----> " + S +" R-----> " + R +" O-----> " + O + " E----->" + E + " C------> " + c)
                j = B[O];
                O += 2;
                A = 3 & (x = 13 * j % 241);
                if (x >>= 2,
                A < 1) {
                    var U;
                    A = 3 & x;
                    if (x >>= 2,
                    A < 1) {
                        if ((A = x) > 14)
                            z = W[O], (U = function e() {
                                var f = arguments;
                                return e.y > 0 ? K(b, e.c, e.l, f, e.z, this, null, 0) : (e.y++,
                                    K(b, e.c, e.l, f, e.z, this, null, 0))
                            }).c = O + 4,
                                U.l = z - 2,
                                U.x = G,
                                U.y = 0,
                                U.z = c,
                                S[R] = U,
                                O += 2 * z - 2;
                        else if (A > 12)
                            q = S[R--],
                                w = S[R--], (A = S[R--]).x === G ? A.y >= 1 ? S[++R] = K(b, A.c, A.l, q, A.z, w, null, 1) : (S[++R] = K(b, A.c, A.l, q, A.z, w, null, 0),
                                A.y++) : S[++R] = A.apply(w, q);
                        else if (A > 5)
                            C = S[R--],
                                S[R] = S[R] != C;
                        else if (A > 3)
                            C = S[R--],
                                S[R] = S[R] * C;
                        else if (A > -1)
                            return [1, S[R--]]
                    } else if (A < 2) {
                        (A = x) < 4 ? (q = S[R--], (A = S[R]).x === G ? A.y >= 1 ? S[R] = K(b, A.c, A.l, [q], A.z, w, null, 1) : (S[R] = K(b, A.c, A.l, [q], A.z, w, null, 0),
                            A.y++) : S[R] = A(q)) : A < 6 ? S[R -= 1] = S[R][S[R + 1]] : A < 8 ? S[R] = --S[R] : A < 10 && (C = S[R--],
                            S[R] = typeof C)
                    } else if (A < 3) {
                        if ((A = x) > 11)
                            throw S[R--];
                        if (A > 7) {
                            for (C = S[R--],
                                     z = W[O],
                                     A = "",
                                     P = i.q[z][0]; P < i.q[z][1]; P++)
                                A += String.fromCharCode(r ^ i.p[P]);
                            // console.log("[5]:fromCharCode result:", A)
                            O += 4,
                                S[R--][A] = C
                        } else
                            A > 5 && (S[R] = h(S[R]))
                    } else {
                        (A = x) < 1 ? S[++R] = null : A < 3 ? (C = S[R--],
                            S[R] = S[R] >= C) : A < 12 && (S[++R] = void 0)
                    }
                } else if (A < 2) {
                    A = 3 & x;
                    if (x >>= 2,
                    A > 2)
                        (A = x) > 12 ? S[++R] = l : A > 5 ? (C = S[R--],
                            S[R] = S[R] !== C) : A > 3 ? (C = S[R--],
                            S[R] = S[R] / C) : A > 1 ? O += 2 * (z = W[O]) - 2 : A > -1 && (S[R] = !S[R]);
                    else if (A > 1) {
                        (A = x) < 2 ? S[++R] = C : A < 4 ? (C = S[R--],
                            S[R] = S[R] <= C) : A < 11 ? (C = S[R -= 2][S[R + 1]] = S[R + 2],
                            R--) : A < 13 && (C = S[R],
                            S[++R] = C)
                    } else if (A > 0) {
                        if ((A = x) < 8)
                            q = S[R--],
                                C = delete S[R--][q];
                        else if (A < 10) {
                            for (z = W[O],
                                     A = "",
                                     P = i.q[z][0]; P < i.q[z][1]; P++)
                                A += String.fromCharCode(r ^ i.p[P]);
                            // console.log("[6]:fromCharCode result:", A)
                            O += 4,
                                S[R] = S[R][A]
                        } else
                            A < 12 ? (C = S[R--],
                                S[R] = S[R] << C) : A < 14 && (S[++R] = W[O],
                                O += 2)
                    } else {
                        if ((A = x) < 5) {
                            z = W[O];
                            try {
                                if (t[o][2] = 1,
                                1 == (C = G(b, O + 4, z - 3, [], c, l, null, 0))[0])
                                    return C
                            } catch (m) {
                                if (t[o] && t[o][1] && 1 == (C = G(b, t[o][1][0], t[o][1][1], [], c, l, m, 0))[0])
                                    return C
                            } finally {
                                if (t[o] && t[o][0] && 1 == (C = G(b, t[o][0][0], t[o][0][1], [], c, l, null, 0))[0])
                                    return C;
                                t[o] = 0,
                                    o--
                            }
                            O += 2 * z - 2
                        } else
                            A < 7 ? (z = W[O],
                                O += 2,
                                S[R -= z] = 0 === z ? new S[R] : d(S[R], n(S.slice(R + 1, R + z + 1)))) : A < 9 && (C = S[R--],
                                S[R] = S[R] & C)
                    }
                } else if (A < 3) {
                    A = 3 & x;
                    if (x >>= 2,
                    A < 1)
                        (A = x) < 2 ? (C = S[R--],
                            S[R] = S[R] > C) : A < 9 ? (z = W[O],
                            O += 4,
                            q = R + 1,
                            S[R -= z - 1] = z ? S.slice(R, q) : []) : A < 11 ? (z = W[O],
                            O += 2,
                            C = S[R--],
                            c[z] = C) : A < 13 ? (C = S[R--],
                            S[R] = S[R] >> C) : A < 15 && (S[++R] = W[O],
                            O += 4);
                    else if (A < 2) {
                        (A = x) < 1 ? S[++R] = g : A < 3 ? (C = S[R--],
                            S[R] = S[R] + C) : A < 5 ? (C = S[R--],
                            S[R] = S[R] == C) : A < 14 && (C = S[R - 1],
                            q = S[R],
                            S[++R] = C,
                            S[++R] = q)
                    } else if (A < 3) {
                        if ((A = x) < 2) {
                            for (z = W[O],
                                     C = "",
                                     P = i.q[z][0]; P < i.q[z][1]; P++)
                                C += String.fromCharCode(r ^ i.p[P]);
                            // console.log("[7]:fromCharCode result:", C)
                            S[++R] = C,
                                O += 4
                        } else
                            A < 4 ? S[R--] ? O += 4 : O += 2 * (z = W[O]) - 2 : A < 6 ? (C = S[R--],
                                S[R] = S[R] % C) : A < 8 ? (C = S[R--],
                                S[R] = S[R] instanceof C) : A < 15 && (S[++R] = !1)
                    } else {
                        (A = x) > 7 ? (C = S[R--],
                            S[R] = S[R] | C) : A > 5 ? (z = W[O],
                            O += 2,
                            S[++R] = c["$" + z]) : A > 3 && (z = W[O],
                            t[o][0] && !t[o][2] ? t[o][1] = [O + 4, z - 3] : t[o++] = [0, [O + 4, z - 3], 0],
                            O += 2 * z - 2)
                    }
                } else {
                    A = 3 & x;
                    if (x >>= 2,
                    A > 2)
                        (A = x) > 13 ? (S[++R] = W[O],
                            O += 8) : A > 11 ? (C = S[R--],
                            S[R] = S[R] >>> C) : A > 9 ? S[++R] = !0 : A > 7 ? (z = W[O],
                            O += 2,
                            S[R] = S[R][z]) : A > 0 && (C = S[R--],
                            S[R] = S[R] < C);
                    else if (A > 1) {
                        (A = x) > 10 ? (z = W[O],
                            t[++o] = [
                                [O + 4, z - 3], 0, 0
                            ],
                            O += 2 * z - 2) : A > 8 ? (C = S[R--],
                            S[R] = S[R] ^ C) : A > 6 && (C = S[R--])
                    } else if (A > 0) {
                        if ((A = x) > 7)
                            C = S[R--],
                                S[R] = S[R] in C;
                        else if (A > 5)
                            S[R] = ++S[R];
                        else if (A > 3)
                            z = W[O],
                                O += 2,
                                C = c[z],
                                S[++R] = C;
                        else if (A > 1) {
                            D = 0,
                                T = S[R].length,
                                $ = S[R];
                            S[++R] = function () {
                                var b = D < T;
                                if (b) {
                                    var e = $[D++];
                                    S[++R] = e
                                }
                                S[++R] = b
                            }
                        }
                    } else {
                        if ((A = x) < 2) {
                            for (z = W[O],
                                     A = "",
                                     P = i.q[z][0]; P < i.q[z][1]; P++)
                                A += String.fromCharCode(r ^ i.p[P]);
                            // console.log("[8]:fromCharCode result:", A)
                            A = +A,
                                O += 4,
                                S[++R] = A
                        } else
                            A < 4 ? (C = S[R--],
                                S[R] = S[R] - C) : A < 6 ? (C = S[R--],
                                S[R] = S[R] === C) : A < 15 && (C = S[R],
                                S[R] = S[R - 1],
                                S[R - 1] = C)
                    }
                }
            }
        return [0, null]
    }

    function K(b, e, f, a, d, c, n, i) {
        var r, t;
        null == c && (c = this),
        d && !d.d && (d.d = 0,
            d.$0 = d,
            d[1] = {});
        var o = {},
            l = o.d = d ? d.d + 1 : 0;
        for (o["$" + l] = o,
                 t = 0; t < l; t++)
            o[r = "$" + t] = d[r];
        for (t = 0,
                 l = o.length = a.length; t < l; t++)
            o[t] = a[t];
        return i && !B[e] && F(b, e, 2 * f),
            B[e] ? G(b, e, f, 0, o, c, null, 1)[1] : G(b, e, f, 0, o, c, null, 0)[1]
    }
},glb = window._$jsvmprt("484e4f4a403f5243000d2d1aea78184c36c3d671000000000000ab44020000250074211b000b02430200013e2217000e1c211b000b03430200024017000e18011b000b02041c16004c211b000b04430200033e2217000b1c1b000b041e00041700181b000b04260200050a000118010a0002101c16001e180022011700051c131f0018011800131e00061a001d000727041c00261102000025552002000825000d1b000b081e00090101001f0702000a25000e211b000b094302000240001f0802000b25005b131e000c02000d02000e1a02221e000f24131e00100a000110220117003c1c0200002500131800221e0011240a0000100200123e00131e001301220117001a1c211b000b0a43020002402217000b1c1b000b0a1e001404001f090200152500131b000b0b1a00221e0016240a000010001f0a020017250039211800430200023e22011700081c1800263e17000702000000211800430200183e170012180017000902001916000602001a001800001f0b02001b25005218010117000802001c1f010200001f0618001f0e180e480039170033180618011b000b0c221e001d241b000b0c221e001e240a00001018011e001f2a0a00011019281f06180e2e1f0e16ffcb1806001f0c0200202500df0200021f0621134318063e22011700121c13221e0011240a00001002002140220117001c1c1b000b051e00221e0011221e002324130a00011002002140220117000d1c211b000b084318063e22011700201c1b000b08221e0011240a000010221e0024240200250a00011048003a220117000d1c211b000b0d4318063e22011700151c1b000b0d221e0011240a00001002002640220117000d1c211b000b0e4318063e17000520001b020b07260a00001001170028211b000b0f4318063e22011700151c1b000b0f221e0011240a00001002002740170005200012001f0d0200282500a3211801430200294017000400180002002a281f061801221e002b24131e000c02002c0200001a020a0001101f0748001f12181218071e001f3a17006618071812191f081808221e002d2448000a00011002002e3e17001a1808221e002f24480118081e001f0a0002101f0816ffd81808221e00242418060a00011048003e1700191808221e002f2418061e001f18081e001f0a0002100018122d1f1216ff95001f0e02003025007146000306000a271f22020000000500600200001f06131e003117001c131e0031221e00322418000a0001101f061806170006180600131e003317001c131e0033221e00322418000a0001101f0618061700061806001b020b0e2618001b000b081e00340a0002101f0618060007001f0f02003525009c460003060006271f2205008f131e0031170015131e0031221e003624180018010a0002101c131e0033170015131e0033221e003624180018010a0002101c49016d48182a483c2a483c2a4903e82a1f061b000b081800020037281d00341b000b08180002002a28180128020038281b000b0b1b000b0b1a00221e0016240a0000101806281a01221e0039240a0000102802003a281d003407001f1002003b25004c460003060006271f1e05003f131e0031170013131e0031221e003c2418000a0001101c131e0033170013131e0033221e003c2418000a0001101c1b000b081800020037281d003407001f1102003d2500a31b000b101a001f061b000b05221e003e24180602003f131e00061a002202000025000c1b030b00201d0040001d00410a0003101c1b000b11221e00422402004318060a0002101c13221700081c131e00442217000b1c131e00441e00451700091800201d00401b020b08260a00001017003013221700221c131e0046131e00472948643922011700101c131e0048131e0049294864391700091800201d0040001f1302004a25002b211343020002402217001f1c1b000b051e00221e0011221e002324131e004b0a00011002004c3e001f1402004d2500611b020b07260a0000100117005202004e1b000b0d420122011700111c1b000b0d1e004e1b000b12410122011700091c02004f134222011700091c020050134222011700091c0200511342220117000f1c020052134202005313423a0012001f150200542501661b000b0d1e005517000520000200561b000b05421700431b000b05221e0056241b000b0d0a0001101f101810221e0024240200550a00011048003b22011700151c1810221e0024240200570a00011048003b170005200013221700081c131e00582217000b1c131e00581e00592217000e1c131e00581e00591e005a17002a460003060006271f9605001e131e00581e0059221e005a240a0000101b000b063e17000520000702005b02005c02005d02005e02005f0200600200610200620200630200640200650a000b1f060200660200670200680a00031f07180708031fc918c921041700181fc8180718c8191fca1318ca19170005200016ffe7180608031fc918c9210417001b1fc8180618c8191fca131e006918ca19170005200016ffe4131e006908031fc918c921041700341fc818c8221e006a24131e000c02006b0200001a020a0001102217000f1c131e006918c81902006c19170005200016ffcb12001f1602006d2500c71b020b08260a0000101700291b000b13221e006e2402000f0a0001101f06180602000025000c1b030b00201d006f001d00701b020b09260a00001017005b46000306002c271f1a181a1e00711b000b14020072193e2217000e1c131e00311e001f48003e1700091800201d006f050029131e0031221e0036240200730200000a0002101c131e0031221e003c240200730a0001101c071b020b07260a000010170024131e007401221700121c131e007522011700081c131e00761700091800201d006f001f170200772500b11b020b07260a000010011700a21b000b08221e0078240200790a0001101f0618061e007a221e0011240a000010221e007b24131e000c02007c02007d1a020200000a000210221e00242402007e0a00011048003a220117003b1c1b000b0d1e0011221e0011240a000010221e007b24131e000c02007c02007d1a020200000a000210221e00242402007e0a00011048003a22011700181c1b000b0d1e004e221e0011240a00001002007f400012001f18020080250075131e000c0200810200001a021f0613221700081c131e00822217000b1c131e00821e008317004c131e00821e00831f071807221e0024240200840a00011048003e22011700151c1807221e0024240200850a00011048003e22011700111c1806221e000f2418070a000110170005200012001f190200862500961b020b1a1e008717000b1b020b1a1e00870046000306000a271f1e020000000500731b000b08221e0078240200790a0001101f0c180c221e0088240200890a0001101f0d180d221e008a2402008b0a0001101f0e180d221e008c24180e02008d190a0001101f0f180d221e008c24180e02008e190a0001101f10180f02008f281810281f111b020b1a18111d008718110007001f1b0200902501270200001f061b020b1a1e009117000f1b020b1a1e00911f061600fb48051f0e0a00001f0f1b000b0d1e004e1f10181022011700071c0a00001f1148001f121812180e3a1700b7460003060006271f3f0500a318111812191f130a00001f1448001f16181618131e001f3a1700371813221e00922418160a00011017001f1814221e0093241813221e00922418160a0001101e00940a0001101c18162d1f1616ffc418131e0095020000281f1518131e0096170011181518131e009602000028281f15181518131e009702000028281f1518151814221e0098240200000a000110281f15180f221e00932418150a0001101c0718122d1f1216ff47180f221e0098240200990a0001101f061b020b1a18061d00911806221e009a2448004904000a000210001f1c02009b2504631b000b0d1e009c221e009d240a0000101f061b000b0d1e009e221e009d240a0000101f0748001f0848011f0948021f0a48031f0b48041f0c48051f0d180d1f0e02009f1f0f0200a01f100200a11f110200a21f120200a31f130200a41f140200a51f150200a61f161806221e0024240200a70a00011048003b22011700151c1806221e0024240200a80a00011048003b17000a180c1f0e1600f71806221e002424180f0a00011048003b17000a18081f0e1600dd1806221e00242418110a00011048003b17000a18091f0e1600c31806221e00242418120a00011048003b22011700151c1806221e0024240200a90a00011048003b22011700151c1806221e0024240200aa0a00011048003b17000a180a1f0e16007b1806221e00242418130a00011048003b22011700141c1806221e00242418140a00011048003b22011700141c1806221e00242418150a00011048003b22011700151c1806221e0024240200ab0a00011048003b22011700151c1806221e0024240200ac0a00011048003b17000a180b1f0e160007180d1f0e1807221e00242418100a00011048003b221700091c180e18084017000820001601521807221e00242418120a00011048003b22011700141c1807221e00242418110a00011048003b22011700151c1807221e0024240200ad0a00011048003b221700091c180e180a40221700091c180e18094017000820001600f91807221e00242418160a00011048003b22011700141c1807221e00242418140a00011048003b22011700141c1807221e00242418150a00011048003b22011700141c1807221e00242418130a00011048003b221700091c180e180c40221700091c180e180b40170008200016008b1807221e00242418100a00011048003a221700141c1807221e00242418120a00011048003a221700141c1807221e00242418160a00011048003a221700141c1807221e00242418130a00011048003a221700141c1807221e00242418140a00011048003a221700141c1807221e00242418150a00011048003a1f001800180e180d3e40170005200048001f1748011f1848021f1948041f1a48051f1b181b1f1c1806221e0024240200ae0a00011048003b17000a18191f1c1600861806221e0024240200af0a00011048003b22011700151c1806221e0024240200b00a00011048003b17000a18181f1c1600541806221e0024240200b10a00011048003b17000a18171f1c1600391806221e0024240200b20a00011048003b22011700151c1806221e0024240200b30a00011048003b17000a181a1f1c160007181b1f1c1b020b1c260a000010221e009d240a0000101f1d1b020b1b260a000010221e009d240a0000101f1e181c18173f221700091c181c18183f2217002d1c131e005822011700231c1b000b0d1e00b4221e0011240a000010221e0024240200b50a00011048003b1700052000181c18173f221700091c181c18183f221700151c181d221e0024240200580a00011048003b1700052000181c181a3e2217000a1c181e0200003f170005200012001f1d0200b62500da261f0646000306000f271f121b000b081e00b71f060500191b000b08221e00b8240200b90a0001104800191f06071806263e170004001b000b08221e0078240200ba0a0001101f070200bb1b000b15264927101b000b0c221e001e240a0000102a480a0a000210280200bb281b000b0b1a00221e0016240a000010281f0818000200bc180828281f00180718001d00bd1318080200002500311b030b011800041c460003060006271f0c05001c1b030b06221e00be241b030b070a0001101c131b030b080907000d1806221e00bf2418070a0001101c001f1e0200c02500be18001e001f1f0618064802331f07180117003018001806480129191f0818074804291f07180818074803293a22011700091c1808180739170005260018081f0748001f09180918063a17004a180018091b000b16221e00c12418001809194900ff2f18001809194808354900ff2f18001809194810354900ff2f18001809194818354900ff2f0a0004100d18092d1f0916ffb41800221e0098240200000a0001101f0a1801170013180a221e002f24480018070a00021000180a001f200200c225007f18001e001f1f0618064802341f07180648032f48004017000818072d1f07180117001a1b000b1718074801281a011f081808180718060d16000d1b000b1718071a011f0848001f09180918063a17002c1808180948023423191800221e00c32418090a000110180948032f48033333300d18092d1f0916ffd21808001f210200c425000a18001400c52f001f220200c6250030180248053518014802333118014803351802480433312818001801311805180348032f180431191802312831001f230200c725001818001e001f48043a17000a180048041d001f1800001f240200c82500d618001e001f1f0618064801291f0718001807191f0948001f0a1b000b0c221e001d244806483418062b280a0001104800301f0d180d4800391700981b020b22180a1b020b1f28041f0a180a48023548032f1f0b48001f0c180c18073a17003d1800180c480128191f081800180c1b020b221800180c191b020b2326180a18081809180c180b18010a00061028040d271f09180c2d1f0c16ffc118004800191f08180018071b020b2218001807191b020b2326180a180818091807180b18010a00061028040d271f09180d2e1f0d16ff661800001f250200c92500d818001e001f1f0618064801291f0718004800191f081b000b0c221e001d244806483418062b280a0001101f0d1b020b22180d1b020b1f2a041f0a180a480040170093180a48023548032f1f0b18071f0c180c48003917003d1800180c480129191f091800180c1b020b221800180c191b020b2326180a18081809180c180b18010a00061029040d271f08180c2e1f0c16ffc118001807191f09180048001b020b2218004800191b020b2326180a180818094800180b18010a00061029040d271f081b020b22180a1b020b1f29041f0a16ff6b1800001f260200ca2501ac131e000c0200cb0200001a02221e000f2418000a0001101700061800000a00001f0618001e001f1f0748001f0848001f09180818073a1701641800221e00c32418080a0001101f0a180a4900803a170018180618091800221e002d2418080a0001100d16012a180a4908003a17002a180618091b000b16221e00c1244900c0180a48063430490080180a483f2f300a0002100d1600fa180a4a0000d8003a220117000c1c180a4a0000dfff39170036180618091b000b16221e00c1244900e0180a480c3430490080180a480634483f2f30490080180a483f2f300a0003100d1600ae180848012818073a1700991800221e00c32418084801280a0001101f0b180a4a0000dc003a2217000c1c4a0000dc00180b3c2217000c1c180b4a0000dfff3c170062180a4903ff2f480a33180b4903ff2f304a00010000281f0c180618091b000b16221e00c1244900f0180c481234483f2f30490080180c480c34483f2f30490080180c480634483f2f30490080180c483f2f300a0004100d18082d1f0816000d1b000b180200cc1a014718082d1f0818092d1f0916fe9a1806221e0098240200000a000110001f270200cd25024e1b000b1718011a011f0648001f0748001f0818001e001f1f09180718013a221700091c180818093a1702051800221e00c3241808222d1f080a0001101f0a180a4804341f0c180c480040170061180c480140170059180c480240170051180c480340170049180c480440170041180c480540170039180c480640170031180c480740170029180c480c4017002b180c480d40170023180c480e40170055180c480f401700a216016816017d18061807180a0d160173180818093a17002818061807180a481f2f4806331800221e00c3241808222d1f080a000110483f2f300d16000d1b000b180200ce1a0147160139180848012818093a17004018061807180a480f2f480c331800221e00c3241808222d1f080a000110483f2f480633301800221e00c3241808222d1f080a000110483f2f300d16000d1b000b180200ce1a01471600e4180848022818093a1700b4180a48072f4812331800221e00c3241808222d1f080a000110483f2f480c33301800221e00c3241808222d1f080a000110483f2f480633301800221e00c3241808222d1f080a000110483f2f304a00010000291f0b4800180b3c2217000c1c180b4a000fffff3c17002f18061807222d1f07180b480a344903ff2f4a0000d800300d18061807180b4903ff2f4a0000dc00300d16001b1b000b180200cf180b221e00112448100a000110281a014716000d1b000b180200ce1a014716001b1b000b180200d0180a221e00112448100a000110281a014718072d1f0716fdef180718013a17000a180618071d001f1b000b161e00c11b000b16180610001f280200d12502aa0a00001f061b000b174a000080001a011f0748001f0848001f0918001e001f1f0a180818013a221700091c1809180a3a1702431800221e00c3241809222d1f090a0001101f0b180b4804341f0e180e480040170061180e480140170059180e480240170051180e480340170049180e480440170041180e480540170039180e480640170031180e480740170029180e480c4017002b180e480d40170023180e480e40170055180e480f401700a216016816017d18071808180b0d1601731809180a3a17002818071808180b481f2f4806331800221e00c3241809222d1f090a000110483f2f300d16000d1b000b180200ce1a01471601391809480128180a3a17004018071808180b480f2f480c331800221e00c3241809222d1f090a000110483f2f480633301800221e00c3241809222d1f090a000110483f2f300d16000d1b000b180200ce1a01471600e41809480228180a3a1700b4180b48072f4812331800221e00c3241809222d1f090a000110483f2f480c33301800221e00c3241809222d1f090a000110483f2f480633301800221e00c3241809222d1f090a000110483f2f304a00010000291f0c4800180c3c2217000c1c180c4a000fffff3c17002f18071808222d1f08180c480a344903ff2f4a0000d800300d18071808180c4903ff2f4a0000dc00300d16001b1b000b180200cf180c221e00112448100a000110281a014716000d1b000b180200ce1a014716001b1b000b180200d0180b221e00112448100a000110281a01471808497fff4801293b17003518084801281f0d1807180d1d001f180618061e001f1b000b161e00c11b000b161807100d1801180d291f0148004801291f0818082d1f0816fdb11808480039170020180718081d001f180618061e001f1b000b161e00c11b000b161807100d1806221e0098240200000a000110001f290200d22500b418011b000b063e22011700081c1801263e22011700091c180148003a17000a18001e001f1f01180148003e17000702000000131e000c0200cb0200001a02221e000f2418000a000110220117001c1c131e000c0200d30200001a02221e000f2418000a00011001170021180118001e001f3e1700061800001800221e00d424480018010a0002100018014a0000ffff3a1700131b020b2826180018010a0002101600101b020b2926180018010a000210001f2a0200d525006b18001b000b063e22011700081c1800263e220117000c1c18001e001f48003e1700061800001b020b271800041f001b020b271801041f011b020b20261b020b25261b020b21261800200a0002101b020b241b020b21261801120a000210040a000210120a000210001f2b0200d625006718001b000b063e22011700081c1800263e220117000c1c18001e001f48003e1700061800001b020b271801041f011b020b2a1b020b20261b020b26261b020b21261800120a0002101b020b241b020b21261801120a000210040a000210200a00021004001f2c0200d725019d0200d81f0602002a1f0718021700080200001f07180117000718011f060200001f0848001f0a18001e001f180a4803283b1700b31800221e00c324180a222d1f0a0a0001104900ff2f4810331800221e00c324180a222d1f0a0a0001104900ff2f480833301800221e00c324180a222d1f0a0a0001104900ff2f301f0918081806221e002d2418094a00fc00002f4812340a000110281f0818081806221e002d2418094a0003f0002f480c340a000110281f0818081806221e002d241809490fc02f4806340a000110281f0818081806221e002d241809483f2f0a000110281f0816ff4518001e001f180a294800391700a81800221e00c324180a222d1f0a0a0001104900ff2f48103318001e001f180a3917001a1800221e00c324180a0a0001104900ff2f4808331600054800301f0918081806221e002d2418094a00fc00002f4812340a000110281f0818081806221e002d2418094a0003f0002f480c340a000110281f08180818001e001f180a3917001a1806221e002d241809490fc02f4806340a0001101600051807281f0818081807281f081808001f2d0200d92500120200da221e00242418000a000110001f2e0200db2501100200001f0648001f07180718001e001f4803293a1700f61b020b2e1800221e002d2418074800280a000110041f081b020b2e1800221e002d2418074801280a000110041f091b020b2e1800221e002d2418074802280a000110041f0a1b020b2e1800221e002d2418074803280a000110041f0b18061b000b16221e00c12418084802331809480435300a000110281f061800221e002d2418074802280a00011002002a3f17002718061b000b16221e00c12418094804334900f02f180a480235480f2f300a000110281f061800221e002d2418074803280a00011002002a3f17002118061b000b16221e00c124180a4806334900c02f180b300a000110281f0618074804281f0716ff021806001f2f0200dc25004a1800483f2f1f001b000b16221e00c12418001800481a3a1700084841160025180048343a17000848471600181800483e3a17000b48004804291600084800481129280a000110001f310200dd2500331b020b311f06180618004818340418061800481234042818061800480c340428180618004806340428180618000428001f320200de2500981b020b121e00df0200e0281f061b020b1e26180602000025007818001e001f48083a17000400460003060006271f7405005f1b020b2c261b020b2f1800221e009a2448080a000110041800221e009a24480048080a0002100a0002101f0c180c0200e13e1700131b020b38262018000a0002101c160019180c0200e23e1700101b020b38261218000a0002101c07000a0002101c001f370200e325004e1b020b1218001d00e4460003060006271f1e050038131e0031170016131e0031221e0036240200e518010a0002101c131e0033170016131e0033221e0036240200e518010a0002101c07001f380200e62500a90200001f06460003060006271f2305003f131e0031170015131e0031221e0032240200e50a0001101f0618060122011700081c131e0033170015131e0033221e0032240200e50a0001101f06071806170055460003060006271f430500491b020b2c261b020b2f1806221e009a2448080a000110041806221e009a24480048080a0002100a0002101f2318230200e13e170008200016000e18230200e23e17000512000712001f390200e7250103121f061b020b121e00e4203e170009201f061600201b020b121e00e4123e170009121f0616000e1b020b39260a0000101f06131e00061a0022121d00e822121d00e922121d00822218061d00ea22121d00eb22121d004022121d00ec22121d00ed22121d005522121d006f22121d00ee220200ef25000520001f4018401d000f1f0718071b020b0d260a0000101d00eb18071e00eb011700671b020b131807041c1b020b171807041c18071b020b14260a0000101d00ec18071b020b15260a0000101d00ed18071b020b16260a0000101d005518071b020b18260a0000101d00ee18071b020b19260a0000101d008218071b020b1d260a0000101d00e91807001f3a0200f025005c1b000b05221e00f12418000a0001101f0648001f0718061e001f4801291f08180848003b1700321800180618081919170008480116000548001f09180918061e001f180829480129331807301f0718082e1f0816ffcc1807001f3b0200f225003848001f06180618011e001f3a17002618004a0001003f2a1801221e00c32418060a000110284800351f0018062d1f0616ffd51800001f3c0200f325003848001f06180618011e001f3a17002618001801221e00c32418060a000110314a0001003f2a4800351f0018062d1f0616ffd51800001f3d0200f42500a348001f06180618011e001f3a1700911801221e00c32418060a0001101f0718074a0000d8003b2217000c1c18074a0000dbff3c2217000c1c180618011e001f3a1700451801221e00c32418064801280a0001101f0818084a0000fc002f4a0000dc003d17002218074903ff2f480a3318084903ff2f284a00010000281f0718064801281f0618004a0001003f2a1807284800351f0018062d1f0616ff6a1800001f3e0200f5250077180022011700071c0200001f061806221e007b24131e000c0200f60200001a020200000a0002101f061806221e0024240200e00a0001104800480129401700211806221e00d42448001806221e0024240200e00a0001100a00021016000518061f061806170008180616000602008f1f061806001f3f0200f72500b1180022011700071c0200001f061806221e006a24131e000c0200f80200001a020a0001101f0718071700161807480019221e00d42448010a0001101600060200001f0618061700141806221e002b240200f90a000110160004261f08131e00061a001f09180817004548001f0a180a18081e001f3a17003618091808180a19221e002b2402002a0a0001104800191808180a19221e002b2402002a0a0001104801190d180a2d1f0a16ffc51809001f400200fa25009118000122011700171c1b000b19221e00fb2418000a0001100200fc3e17000a131e00061a00001b000b05221e00f12418000a000110221e00fd240a0000101f06131e00061a001f0748001f10181018061e001f3a170037180117001a180718061810191800180618101919020000280d1600131807180618101918001806181019190d18102d1f1016ffc41807001f410200fe2500781b000b17221e00ff2418000a0001101700131800221e0100241b020b420a0001100018001b000b05411700491b000b05221e00f12418000a000110221e00fd240a0000101f0c180c221e010124020000250017180018011b020b421b030b00180119040d180000131e00061a000a000210001800001f4202010225007d18000122011700171c1b000b19221e00fb2418000a0001100200fc3e170007020000001b000b05221e00f12418000a000110221e00fd240a0000101f060200001f0748001f10181018061e001f3a170029180718061810190a000102002a281800180618101919280200f928281f0718102d1f1016ffd21807001f430201032500cb1b000b08221e0078240200790a0001101f07180748301d0104180748101d01051807221e0088240201060a0001101f0818080201071d01081808221e01092402010a4802480c0a0003101c180848021d010b180848011d010c180802010d1d010e1808221e010f24480848084808480048020a0005101c1808221e0110240a0000101c1807221e007a240a0000101f0648001f09180948203a17002c18004a0001003f2a1806221e00c324180018061e001f2c0a000110284800351f0018092d1f0916ffd21800001f4402011125002046000306000c271f0c48004801290005000d1b020b44140112040007001f45020113250011110201131d00951118001d0114001f4602011525001a460003060008271f0c200005000b131e003101010007001f4702011625001a460003060008271f0c200005000b131e003301010007001f4802011725001a460003060008271f0c200005000b131e007401010007001f490201182500301b020b0b1b020b49260a000010041b020b0b1b020b48260a00001004281b020b0b1b020b47260a0000100428001f4a020119250023131e011a1f0618061e01040200bb2818061e0105280200bb2818061e011b28001f4b02011c250019131e011a1f0618061e011d0200bb2818061e011e28001f4c02011f2500711b000b1a0200002500640201201b000b0d421700511b000b0d221e0120240a000010221e0121240200002500311b040b001800020122190200bb28180002012319280200bb28180002012419280200bb2818000201251928041c000a0001101c16000a1800020000041c001a01001f4d02012625007d0201271f0648001f07211b000b0d180619430200024017000f1b000b0d1806191f0716001c211b000b0d180619430200024017000c1b000b0d1806191f07460003060009271f50121f080500181b000b08221e0128240201290a0001101c201f080702012a13421f0918070200bb281808280200bb28180928001f4e02012b2500671b000b0b1a001f061806221e012c2448010a0001101c1806221e012d2448050a0001101c48001806221e012e240a000010291f071806221e012d24480b0a0001101c48001806221e012e240a000010291f081b000b0c221e012f24180718080a000210001f4f0201302501dd0201310201320201330a00031f06131e00061a001f07131e00061a001f081b000b081e00b70117000702001a001806031f1b181b21041700711f1a1b000b08221e0078240201340a0001101f1c181c0201351d0136181c1e01370201381d0139181c1e0137181a1d013a1b000b081e00b7221e00bf24181c0a0001101c1807181a181c1e013b0d1808181a181c1e013c0d1b000b081e00b7221e00be24181c0a0001101c16ff8e02013d02013e02013f02014002014102014202014302014402014502014602014702014802014902014a02014b02014c02014d02014e02014f0201500201510201520201530201540201550201560201570201580201590a001d1f0948001f0b271f0a271f0c48001f1a181a18091e001f3a1700b31806031f1c181c210417009f1f1b1b000b08221e0078240201340a0001101f1d181d0201351d0136181d1e01370201381d0139181d1e01371809181a1902015a28181b281d013a1b000b081e00b7221e00bf24181d0a0001101c181d1e013b1807181b1940220117000f1c181d1e013c1808181b19401f1e1b000b081e00b7221e00be24181d0a0001101c181e170018181a481e3a17000d4801181a33180a301f0a16000616ff60181a2d1f1a16ff48180a221e00112448100a000110001f5002015b25002146000306000c271f0c180c1e01140005000e1b000b1b02015c1a011c07001f5102015d2500141b000b1c221e0011240a0000101e001f001f5202015e2501e81b020b07260a000010220117000d1c1b020b09260a00001022011700231c1b000b0d1e009c221e009d240a000010221e00242402015f0a00011048003917000702000000131e016022011700081c131e016122011700081c131e01621f061b000b1a02000025017d46000306000d271f6a1800020000041c0501691b030b0617015a1b030b06131e00061a0022131e00061a00220201631d01640a00011d01651a011f06020000250004001f07131e000c0201660200001a021f08131e000c02016702007d1a021f091806221e0168240200000a0001101c1b000b1d2602000025000d1b040b00020000041c004901f40a0002101c1806221e0169240a0000101f0a180a1b000b1a41170038180a221e0121240200002500131b040b06221e016a2418000a000110000a000110221e012124020000250004000a0001101c1600301806221e01692402000025001c1b040b06221e016a2418001b040b071b040b070a0003101c0018070a0002101c18060200002500601800221700091c18001e016b2217000c1c18001e016b1e016b1700431b040b08221e016c2418001e016b1e016b0a0001101f0618061700271806480019221e006a241b040b090a0001101f07180717000e1b040b001806480019041c001d016d16000a1800020000041c07001a01001f5302016e25005d02016f221e007b24131e000c02017002007d1a0202000025003e1b000b0c221e001e240a00001048102a4800301f0618000201713d170008180616000b180648032f4808301f071807221e00112448100a000110000a000210001f5402017225005518001e001f48223e1700481b020b3c2648001800221e002f24480048200a0002100a0002101f061806221e0011240a000010221e002f24480048020a0002101800221e002f24482048220a0002103e0012001f5502017325005d1b020b0f020174041f0618062217000b1c1b020b551806041700061806001b020b54260a0000101f0618061b020b3c26480018060a00021028221e002f24480048220a0002101f061b020b102602017418060a0002101c1806001f56020175250033180001170007020000001b020b0c4804041f0618061b020b2d261b020b2b26180018060a0002100201760a00021028001f5702017725015d180117003a48001f0b48001f0c180c18001e001f3a1700271800180c191e01781700141800180c191801180b222d1f0b191d0179180c2d1f0c16ffd40200001f061800221e017a2402000025001b1b03220b061b020b0b18001e01790402017b28281d017c000a0001101c18061b020b0a260a000010281f061b020b54260a0000101f071b000b0c221e001d241807221e00c32448030a00011048082b0a0001101807221e00c32448030a00011048082c281f081807221e002f24480448041808280a0002101f091b020b2d1b020b2b26180618090a000210180728041f061b020b12221e017d02017e1b000b1e180604280200f928281d017d271f0a1b020b1e26180a02000025004d180002017f1948003d2217000a1c1800020180191700351b020b121b020b57180002018019041d01811b020b121800020180191d01821b020b10260201831800020180190a0002101c000a0002101c001f5802018425049a1b000b0d221700051c13221700081c1b000b080117000400131e00061a00220201851d01862248041d01872218001e01851d0179131e00061a00220201881d01862248031d0187221b020b0a1d0189131e00061a002202018a1d01862248031d0187221b020b4a1d0189131e00061a00220200791d01862248031d0187221b020b451d0189131e00061a002202018b1d01862248031d0187221b020b0a1d0189131e00061a002202009e1d01862248001d0187131e00061a002202018c1d01862248001d0187131e00061a002202018d1d01862248001d0187131e00061a002202018e1d01862248001d0187131e00061a00220200571d01862248001d0187131e00061a002202018f1d01862248031d0187221b020b4b1d0189131e00061a00220201901d01862248031d0187221b020b4c1d0189131e00061a00220201911d01862248011d0187131e00061a00220201921d01862248011d0187131e00061a00220201931d01862248011d0187131e00061a00220201941d01862248001d0187131e00061a00220201951d01862248031d0187221b020b4d1d01892248011d0178131e00061a00220201961d01862248031d0187221b020b4e1d0189131e00061a00220201971d01862248031d0187221b020b4f1d0189131e00061a00220201981d01862248031d0187221b020b0a1d0189131e00061a00220201991d01862248031d0187221b020b1b1d0189131e00061a002202019a1d01862248031d0187221b020b501d0189131e00061a002202019b1d01862248031d0187221b020b1c1d0189131e00061a002202019c1d01862248031d0187221b020b0a1d0189131e00061a002202009c1d01862248001d0187131e00061a002202019d1d01862248031d0187221b020b0f1d0189220201831d019e131e00061a002202019f1d01862248031d0187221b020b511d0189131e00061a00220201a01d01862248031d0187221b020b521d0189131e00061a00220201a11d01862248031d0187221b020b531d01892248011d0178131e00061a00220200821d01862248011d0187131e00061a00220201a21d01862248041d0187221b020b061e01a31d0179131e00061a00220201a41d01862248031d0187221b020b561d0189131e00061a00220201a51d01862248031d0187221b020b0a1d0189131e00061a00220201a61d01862248041d01870a00221f060a00001f07180608031f11181121041700db1f1018061810191e01871f12181248004017001e1812480140170033181248024017004018124803401700501600a918061810191b020b0b1b000b0d18061810191e018619041d017916008c18061810191318061810191e0186191d017916007718061810191b000b0818061810191e0186191d017916005f18061810191e01781700321b000b1a1700281807221e00932418061810191e0189221e00232418061810191e019e0a0001100a0001101c160025180618101918061810191e0189221e0023242618061810191e019e0a0002101d017916ff241b000b1a1700361b000b1a221e01a72418070a000110221e0121240200002500141b020b58261b030b0618000a0002101c000a0001101c16000b1b020b581806041c001f590201a82500441b000b082217000b1c1b000b081e01a901170004001b020b5b08031f0d180d210417001f1f0c1b000b08221e01a924180c1b020b5b180c190a0002101c16ffe0001f5d0201aa25008418001e001f4900c8391700131800221e01ab24480048640a0002101c18001e001f48003917004e180018001e001f480129191f0c18011e01ac180c1e01ac2948003c220117002a1c0201ad1801422217000f1c18011e0171180c1e01713d2217000f1c18011e01ad180c1e01ad3d170004001800221e00932418010a0001101c001f610201ae25006048001f0618001e01af22011700091c18001e01b022011700091c18001e01b122011700091c18001e01b217000748011f061b020b61261b020b60131e00061a002218061d0171221b000b0b221e01b3240a0000101d01ac0a0002101c001f620201b425006d18001f0618001e00941f0718001e01b52217000a1c18070201b63e17001318001e01b74800191f061b02201d01b8131e00061a002218061e01b91d01712218061e01ba1d01ad221b000b0b221e01b3240a0000101d01ac1f081b020b61261b020b5e18080a0002101c001f630201bb25006d18001f0618001e00941f0718001e01b52217000a1c18070201bc3e17001318001e01b74800191f061b02201d01b8131e00061a002218061e01b91d01712218061e01ba1d01ad221b000b0b221e01b3240a0000101d01ac1f081b020b61261b020b5f18080a0002101c001f640201bd2500191800221e0101241b020b650a00011018001e001f2b001f670201be25006818001e001f48013c1700064800001b020b671800041f061800221e01002402000025000b18001b030b0629000a0001101f071b000b0c221e01bf241807221e0100241b020b660a000110221e0101241b020b650a00011018001e001f4801292b0a000110001f680201c02500d548001f0648001f0718001e001f1801391700ba0a00001f0848001f09180918001e001f4801293a17008418001809480128191f0a18001809191f0b180a1e01ac180b1e01ac291f0c180c17005918021700171808221e0093244801180c2b0a0001101c1600401808221e0093241b000b0c221e01bf241b020b66180a1e0171180b1e017129041b020b66180a1e01ad180b1e01ad2904280a000110180c2b0a0001101c18092d1f0916ff741b020b671808041f061b020b681808041f07180748003d1700081401c11f07180618070a0002001f690201c2250119121f06460003060006271f2105002b1b000b082217000b1c1b000b081e01281700171b000b08221e0128240201290a0001101c201f06071b020b69261b020b5e48010a0002101f071b020b69261b020b604805200a0003101f0848011f09180601221700081c1b020b5c17000a18094840301f091b020b5e1e001f48003e17000d18094802301f09160015180748001948323917000a18094810301f091b020b5f1e001f48003e17000a18094804301f091b020b601e001f48003e17000d18094808301f0916001618084800191401c33917000a18094820301f091809221e00112448200a0001101f0a180a1e001f48013e17000e0201c4180a281f0a160016180a1e001f48023e17000b02001a180a281f0a180a001f6a0201c525002d0200001f06460003060006271f0e0500191b020b0e260201c61b000b081e00340a0002101f06071806001f6b0201c72500531b000b19221e00fb24131e00061a002218001d000e221b000b1f1b000b19221e00fb2418011e00b70a000110041d01c82218021d01860a0001101f061b020b2d261806020176200a0003101f071807001f6c0201c9250434211801430200023e2217000c1c21180043020001402217000a1c18001e01ca0117000d1b020b460201cb1a014748001f0648001f074a0000fff11f081b000b0b1a00221e0016240a0000104903e82b4800351f091b020b061e01cc012217003e1c1b020b3d261b020b3d2648001809020000280a0002101b000b0e1e0083221e002f241b000b0e1e01cd1e001f4802280a0001100a00021018082c1f071809180718082a31480035221e00112448020a0001101f0a180a1f0b180a1e001f48203917001b180a221e002f24180a1e001f4820290a0001101f0b16003c180a1e001f48203a1700310200001f7048001f7118714820180a1e001f293a170013187002001a281f7018712d1f7116ffe51870180b281f0b0201ce1f0c0201cf1f0d0201d01f0e180e180d28180c28180b281f061b000b1526180648020a0002101f061b020b3d2648001806020000280a0002101f0f1b020b3a260a0000101f1018100200e818020201d13e17000712160004200d0200001f11180117000a18011f1116011e1b020b5a1e01d2221e002324110201d318000a0003101c18001e00b72217001a1c1b000b19221e00fb2418001e00b70a0001100200fc4017006f48001fc318001e01d41700331b020b3e2648001b000b19221e00fb241b020b412618001e00b718001e01d40a0002100a0001100a0002101fc31600271b020b3e2648001b000b19221e00fb241b020b4218001e00b7040a0001100a0002101fc30201d518c3280200f9281f111b020b4018001e01ca041fc218001e01d617001a1b000b05221e01d72418c218001e01d60a00021016000518c21fc218111b020b4318c204281f1118110201d8281b020b3f18001e01ca04280200f9281f1118110201d9280201da281f111b020b5a1e01d2221e002324110201db18110a0003101c1b020b3b1810041f121b020b061e01cc012217000d1c1b020b45260a0000101f131b020b061e01cc012217001e1c1b020b121e018122011700111c1b020b571b020b0f02018304041f141b020b331806041b020b3318061401dc2b48003504281b020b33181318063104281b020b331b020b3d26180f1b020b061e01cc012217000b1c1b000b0d1e009c221e0011240a0000100a00021018082c4810331b020b3d26180f1811020000280a00021018082c3004281b020b3318124808331b020b061e01dd4804333018063104281b020b32180704281f151b020b334800041c181417000a18151814281f151b020b6a260a00001022011700071c0201de1f160200bb1b020b6d281b020b061e01df281f1718171816281f1718171b020b6e181528281f171b020b3e26480018170a000210221e00112448100a0001101f181818221e009a2418181e001f48022918181e001f0a0002101f1918171819281f170200001f1a1b020b6b260a0000101f1b181b17001f1b020b6c26181b180018110a0003101f1a18170201e028181a281f171817001f6f0201e1250072131e00061a001f06180108031f081808210417005a1f0718011807191f0918001809191f0a21180a430200023e22011700081c180a263e170006121f0a180a26402217001a1c21180a430200033e220117000c1c21180a430200013e170006201f0a18061809180a0d16ffa51806001f700201e225004b0201e30201e402009e0201e502019402018c0201e60201270201e70200b40201e80201e90201ea0201eb0201ec0201ed0201ee0a00111f061b020b70261b000b0d18060a000210001f710201ef2500450201f00200490200470201f10201f20201f30201930201f40201f50201f60201f70201610201f80201f90201fa0201fb0a00101f061b020b70261318060a000210001f720201fc2500270201fd0201fe0200090201ff0202000a00051f061b020b70261b000b0818060a000210001f730202012500551b000b08221e0078240200790a0001101f06261f07460003060006271f100500281806221e0088240200890a00011022011700121c1806221e0088240202020a0001101f0707180701170006261f071807001f740202032500671800221e008a240202040a00011022011700121c1800221e008a240202050a00011022011700121c1800221e008a240202060a0001101f0618061700271800221e008c2418061e02070a0001101f07180748003e17000748021f071807001600052600001f750202082501b61b020b1a1e020917000b1b020b1a1e0209001b020b74260a0000101f0618060117000a131e00061a0000131e00061a00221806221e020a240a00001022011700071c0a00001d020b221806221e020c240a0000101e020d1d020d221806221e008c2418061e020e0a0001101d020f221806221e008c2418061e02100a0001101d0211221806221e008c2418061e02120a0001101d0213221b020b751806041d0203221806221e008c2418061e02140a0001101d0215221806221e008c2418061e02160a0001101d0217221806221e008c2418061e02180a0001101d0219221806221e008c2418061e021a0a0001101d021b221806221e008c2418061e021c0a0001101d021d221806221e008c2418061e021e0a0001101d021f221806221e008c2418061e02200a0001101d0221221806221e008c2418061e02220a0001101d0223221806221e008c2418061e02240a0001101d0225221806221e008c2418061e02260a0001101d0227221806221e008c2418061e02280a0001101d0229221806221e008c2418061e022a0a0001101d022b221806221e008c2418061e022c0a0001101d00961f071b020b1a18071d02091807001f7602022d250065131e00061a00221b020b71260a0000101d022e221b020b72260a0000101d022f221b020b73260a0000101d0069221b020b76260a0000101d0089221b020b1b260a0000101d0230221b020b1c260a0000101d004e1f061b020b1a18061d02311806001f77020232250075131e00061a001f061b020b1a1e023117000f1b020b1a1e02311f0616000e1b020b77260a0000101f0618061b000b0b221e01b3240a0000101d02331b020b0c4804041f0718071b020b2d261b020b2b261b000b19221e00fb2418060a00011018070a0002100201760a000210281f081808001f7802023425003b48001f0618061b020b121e02351e001f3a1700251b020b121e0235180619221e000f2418000a000110170005200018062d1f0616ffd112001f790202362503ac131e02371e00221f0618061e006e1f0718061e02381f0818061e02391f0918061e023a1f0a18061e023b170007001600091806201d023b1806020000250076111e023c01170065111e023d221e009324131e00061a00220202381d023e221b041d023f0a0001101c131e000c02024002000e1a02221e000f2418000a00011017002a111801221e0011240a000010221e009d240a000010221e002b240202410a0001104800191d02421b030b08111b0410001d02381806020000250012111b041d02431b030b0a111b0410001d023a1806020000250040110a00001d023d111e023d221e009324131e00061a002202006e1d023e221b041d023f0a0001101c1118001d02441118011d02451b030b07111b0410001d006e02024602007002024702024802024902024a02024b0a00071f0b180602000025026f11201d023c1b020b79111e024504170255111e0245221e00242402024c0a00011048004801293917000c1b030b09111b0410001118001d024d111e024e1f06111e02461f07111e00701f08111e02471f09111e02481f0a111e02491f0b111e024a1f0c111e024b1f0d111e024f1f0e111e02501f0f131e00061a001f1048001f2a182a1b030b0b1e001f3a17002118101b030b0b182a19111e02511b030b0b182a19190d182a2d1f2a16ffd8131e00061a00221b020b82261b030b00111e02450a0002101d01ca1f11111e02440202523d17003c111e02420202533e220117000c1c111e02420202543e17001a1b020b80261811111e0242111e024d0a0003101c16000c1b030b09111b0410001b020b851b030b000417001c1b030b00221e02552418111b000b060201d10a0003101600151b020b6f2618111b000b060201d10a0003101f121b020b8326111e024518120a0002101f13111e023d221700131c111e023d48001902023e1902006e3f1700052600111e023d1f1448001fa418a418141e001f3a17003618a448003e170010181418a4191e023f480118130d11181418a41902023e191911181418a4191e023f101c18a42d1fa416ffc5111e024317000e111e023a11111e0243101c1102023d091b020b121e025617001e11221e0238241b020b061e02571b020b78260a0000100a0002101c1118061d024e1118071d02461118081d00701118091d024711180a1d024811180b1d024911180c1d024a11180d1d024b11180e1d024f11180f1d025048001f9018901b030b0b1e001f3a170021111e02511b030b0b18901918101b030b0b189019190d18902d1f9016ffd81b030b09111b0410001d0239001f7a0202582503f60202592503c31801220117000a1c131e00061a001f011b020b7b2217000b1c18001b000b20411f060200001f0702025a1f08180617001418001e01ca1f0718001e025b1f0816002418001f0718011e025b17001418011e025b221e025c240a00001016000518081f08180802025a402217000a1c180802025240220117000c1c1b020b79180704011700111b030b0626180018010a00021000131e00061a00221b020b82261b030b0018070a0002101d01ca1f0918080202523d1701fc1b020b7f26180018010a000210221e002b240202410a000110480019221e009d240a0000101f5018500202533e220117000a1c18500202543e1701af18061700c81800221e025d240a000010221e025e240a000010221e0121240200002500881b020b80261b040b091b040b5018000a0003101c1b020b851b030b000417001e1b030b00221e0255241b040b091b000b060201d10a0003101600171b020b6f261b040b091b000b060201d10a0003101f061b020b83261b040b0718060a0002101f071b020b81261b040b00180718000a0003101f081b030b062618081b040b010a000210000200002500161b000b1a0200002500091b050b0047001a01000a000210001600e21b020b80261809185018011e00b70a0003101c1b020b851b030b000417001c1b030b00221e02552418091b000b060201d10a0003101600151b020b6f2618091b000b060201d10a0003101fa21b020b8326180718a20a0002101fa31b020b121e025617006f18010117002a131e00061a0022131e00061a00221b020b061e02571b020b78260a0000100d1d025f1f0116004218011e025f011700231801131e00061a00221b020b061e02571b020b78260a0000100d1d025f16001918011e025f1b020b061e02571b020b78260a0000100d1b030b062618a318010a000210001600111b030b0626180018010a00021000160112180802025a3e1700fb1b020b851b030b000417001c1b030b00221e02552418091b000b060201d10a0003101600151b020b6f2618091b000b060201d10a0003101f4e1b020b83261807184e0a0002101f4f18061700271b020b81261800184f1b000b060a0003101f501b030b0626185018010a000210001600871b020b121e025617006f18010117002a131e00061a0022131e00061a00221b020b061e02571b020b78260a0000100d1d025f1f0116004218011e025f011700231801131e00061a00221b020b061e02571b020b78260a0000100d1d025f16001918011e025f1b020b061e02571b020b78260a0000100d1b030b0626184f18010a000210001600111b030b0626180018010a00021000001f071b020b7e260a0000100117000400131e02601700070016000813201d0260131e02611f061318071d0261001f7d020262250008131e0261001f7e02026325010d0200001f061b020b7b2217000b1c18001b000b204117002218001e025f221e0041240202640a0001101f07180717000718071f061806001801221700091c18011e025f1700c61b020b7c2217000e1c18011e025f1b000b214117002218011e025f221e0041240202640a0001101f17181717000718171f0618060018011e025f1b000b174117004448001f47184718011e025f1e001f3a17003218011e025f184719480019221e009d240a0000100202643d17000f18011e025f1847194801190018472d1f4716ffc618011e025f1b000b054117003618011e025f08031f8f188f21041700231f8e188e221e009d240a0000100202643e17000c18011e025f188e190016ffdc180600001f7f0202652500ba1802263e220117000a1c18020200003e1700061800001802221e0011240a0000101f0218010202533e1700771800201d01d41802221e002b240200f90a0001101f0c131e00061a001f0d180c17004a48001f0e180e180c1e001f3a17003b180d180c180e19221e002b2402002a0a0001104800191b000b22180c180e19221e002b2402002a0a000110480119040d180e2d1f0e16ffc01800180d1d00b716001718001b000b19221e02662418020a0001101d00b71800001f8002026725009318001e025f1f061b020b121e025617001f1806221e0268241b020b061e02571b020b78260a0000100a0002101c1b000b201801131e00061a002218001e025b1d025b2218061d025f2218021d00b72218001e02691d02692218001e026a1d026a2218001e026b1d026b2218001e01eb1d01eb2218001e026c1d026c2218001e026d1d026d2218001e026e1d026e1a02001f8102026f25012518011f061b020b121e02701e001f48003917008048001f0818081b020b121e02701e001f3a17006c1b020b121e02701808194800191f091809221e000f2418010a0001101700451801221e007b2418091b020b121e02701808194801190a0002101f061b020b5a1e01d2221e0023241800020271020272180128020273281806280a0003101c16000b18082d1f0816ff8a1b000b2218060418063d17000c1b000b1f1806041f061806221e0024240200e00a0001101f071807480039221700151c1806221e0274240202750a00011018073917004d1806221e00d424480018074801280a0002101f201806221e00d424180748012818061e001f0a0002101f2118201821221e002b240202750a000110221e0098240202760a000110281f061806001f8202027725002d18001800221e0024240200e00a00011048004801294017000c02027818012816000902027918012828001f8302027a2500141b020b7a1800041c1b020b7d1800041c001f8402027b25000b18001b020b8741001f8502027c250019111b000b19221e0266241b020b860a0001101d027d001f8702027e2500c01b020b061e01cc17000526001b020b85110417000a111e027d1600071b020b121f061b000b05221e01d724180618000a0002101c1b020b8a1806041c18061e027a1700201b020b8b18061e027f041c1b020b8c18061e0280041c1b020b8411041c18061e02561700131b000b1d261b020b7748000a0002101c1b020b5d260a0000101c1b020b121e028101221700091c18061e01841700271b020b12201d02811b020b37260a0000101c1b000b1d261b020b59480018060a0003101c001f8902028225006618001e018548003e220117001c1c1b000b0c221e001d2418001e01850a00011018001e01853f17000d1b020b460202831a014718001e027a17002a18001e027f1e001f48003e220117000d1c18001e027f1e00930117000d1b020b460202841a0147001f8a02028525003f48001f06180618001e001f3a17002f180018061917001f1b020b121e0235221e0093241b000b2318001806191a010a0001101c18062d1f0616ffcc001f8b02028625004f18001b000b064017004448001f06180618001e001f3a1700351b020b121e0270221e0093241b000b2318001806194800191a0118001806194801190a00020a0001101c18062d1f0616ffc6001f8c020287250011131e028822011700071c020000001f8d0202892500561b020b0f1b020b061e028a0422011700071c0200001f061b020b111b020b061e028a041c180602028b3d17000b0200001f0616001518060200003d17000c1b000b081e02691f0618061700091318061d0288001f8e211b000b051e01d743020003401700c71b000b05221e003e241b000b050201d7131e00061a00220201d72500941800263e220117000b1c18001b000b063e17000d1b000b0702028c1a01471b000b051800041f0648011f0718071b031e001f3a17005b1b031807191f08180826402217000b1c18081b000b0640170039180808031f141814210417002c1f091b000b051e00221e028d221e002324180818090a00021017000d1806180918081809190d16ffd318072d1f0716ffa01806001f8f188f1d028e22201d028f22201d02900a0003101c1b000b051e00f1011701141b000b050200002501021b000b051e00221e028d1f06131e00061a0022261d0011221e0291240200110a000110011f0702001102029202029302028d02029402029102000d0a00071f0818081e001f1f090200002500b42118004302000340221700161c211800430200014022011700081c1800263e17000d1b000b070202951a01470a00001f06180008031f121812210417002a1f071b030b06221e002324180018070a0002101700111806221e00932418070a0001101c16ffd51b030b0717004548001f0818081b030b093a1700371b030b06221e00232418001b030b081808190a0002101700161806221e0093241b030b081808190a0001101c18082d1f0816ffc518060000260a0000101d00f1131e00061a00220202961d01a32248021d01dd22121d01cc220202881d028a220202971d01df220202981d02571f06131e00061a0022121d02992248001d018522121d018422121d025622121d027a220a00001d027f220a00001d0235220a00001d0280220a00001d02702202029a1d017d2202029b1d00df2202029c1d029d1f12131e00061a001f1a14029e1f1f48001f3002000025001e1b021b020b351d029f1b0218001d02a01b020b32180048023404001f34271f3302000025002a1b021b020b361d029f1b020b30481c331800480435301f061b0218001d02a01b020b32180604001f350200002500271b021b020b341d029f1b020b321b020b30481a33180048063530041b020b3118000428001f36131e00061a0022020000250049121f061b020b85110417000f111e027d1e02991f0616000c1b020b121e02991f061806221700201c1b000b11221e0042240202a11800280202a2280202a318010a0003101c001d01d21f5a131e00061a002218631d02a42218631d01b62218621d02a52218641d01bc2218641d02a61f5b121f5c0a00001f5e0a00001f5f0a00001f600200002500091800180128001f65020000250009180018002a001f660202a71f6d0202a81f6e1b000b202217000d1c1b000b201b000b05411f7b1b000b212217000d1c1b000b211b000b05411f7c1b000b19221e00fb2418120a0001101f86186f1f8818871e002218891d027e18871e002218881d025518871e0022188d1d02871806122217000b1c180d260a0000101d01cc188e260a0000101c180018871d027c1800188d1d0287180018891d027e180018881d02551b000b05221e003e2418000202a9131e00061a0022201d028e0a0003101c000a0002101c0002aa00066d606867617609776c6667646b6c67660864776c61766b6d6c03636f6607677a726d707671064d60686761760e607b7667665d63617063756e6770046b714b470c666d61776f676c764f6d6667096b71446b7067646d7a086b7151636463706b06506765477a720b616d6c7176707761766d70016b04766771760b4a564f4e476e676f676c7608766d5176706b6c6521596d60686761762251636463706b50676f6d76674c6d766b646b6163766b6d6c5f0671636463706b107277716a4c6d766b646b6163766b6d6c0c656776566b6f677176636f7207656776566b6f670865677654636e776707606d6d6e67636c013301320c70636c666d6f5176706b6c653e32333031363734353a3b636061666764656a6b68696e6f6c6d72737071767774757a7b78434041464744454a4b48494e4f4c4d52535051565754555a5b5805646e6d6d700670636c666d6f066e676c65766a09666d6f4667766761760f596d606867617622556b6c666d755f0972706d766d767b72670461636e6e076b6c66677a4d6408466d61776f676c7612596d6068676176224c63746b6563766d705f10596d6068676176224a6b71766d707b5f0a65677644706d6f517670067176706b6c65013f0571726e6b76045939245f06616a637043760122097177607176706b6c6509656776416d6d696b670e716771716b6d6c51766d70636567076567764b76676f0c6e6d61636e51766d7063656706616d6d696b6709716776416d6d696b67077167764b76676f313f3922677a726b7067713f4f6d6c2e2230322251677222303233322232323832323832322257564139227263766a3f2d390a3922677a726b7067713f0b766d454f565176706b6c650939227263766a3f2d390966676e416d6d696b670a70676f6d74674b76676f0e66676077656567704667766761760e6667646b6c6752706d726770767b026b6608666760776565677003656776036e6d6502276107616d6c716d6e6707646b70676077650a6d77766770556b66766a0a6b6c6c6770556b66766a0b6d777667704a676b656a760b6b6c6c67704a676b656a760a6c6d66674667766761760772706d6167717110596d60686761762272706d616771715f0d726a636c766d6f46677667617607726e77656b6c71085d726a636c766d6f0b61636e6e526a636c766d6f0b5d5d6c6b656a766f637067054377666b6d1841636c74637150676c6667706b6c65416d6c76677a7630460f75676066706b7467704667766761760975676066706b746770136567764d756c52706d726770767b4c636f6771096e636c65776365677106616a706d6f670770776c766b6f6707616d6c6c676176145d5d75676066706b7467705d6774636e77637667135d5d71676e676c6b776f5d6774636e776376671b5d5d75676066706b7467705d7161706b72765d64776c61766b6d6c175d5d75676066706b7467705d7161706b72765d64776c61155d5d75676066706b7467705d7161706b72765d646c135d5d647a66706b7467705d6774636e77637667125d5d66706b7467705d776c75706372726766155d5d75676066706b7467705d776c75706372726766115d5d66706b7467705d6774636e77637667145d5d71676e676c6b776f5d776c75706372726766145d5d647a66706b7467705d776c75706372726766095d71676e676c6b776f0c61636e6e51676e676c6b776f165d51676e676c6b776f5d4b46475d5067616d7066677008666d61776f676c76056f6376616a0a5e2659632f785f66615d066163616a675d0f6b6c616d656c6b766d466776676176046d72676c096b6c616d656c6b766d076d6c6770706d7004616d66671253574d56435d475a4147474647465d47505010716d6f6749677b4a677067407b766766096b6c66677a676646400c526d6b6c7667704774676c760e4f51526d6b6c7667704774676c760a6a6d6d694667766761760d617067637667476e676f676c760661636c74637109766d4663766357504e077067726e636167035e712801650a6c63766b7467616d666714596d606867617622526e77656b6c437070637b5f0e6e6d6163766b6d6c4667766761764a5c6a767672713d385e2d5e2d2a59322f3b5f79332e317f2a5e2c59322f3b5f79332e317f2b79317f7e59632f64322f3b5f79332e367f2a3859632f64322f3b5f79332e367f2b79357f2b086e6d6163766b6d6c046a70676404646b6e67106a767672382d2d6e6d61636e6a6d717606656776457277074552574b4c444d0a656776416d6c76677a7605756760656e0c656776477a76676c716b6d6c19554740454e5d66676077655d70676c66677067705d6b6c646d0c656776526370636f6776677015574c4f43514947465d54474c464d505d554740454e17574c4f43514947465d50474c46475047505d554740454e012d0a656776526e77656b6c7106524e57454b4c046b76676f047277716a04767b7267046c636f6707746770716b6d6c08646b6e676c636f6704686d6b6c02212105716e6b61670c616d6c716b7176416a67616909777167704365676c760b766d4e6d7567704163716708726e6376646d706f07756b6c666d757103756b6c07636c66706d6b66056e6b6c777a066b726a6d6c67046b726366046b726d66036f6361096f63616b6c766d716a0c6f63615d726d75677072612b0461706d71037a33330561706b6d7105647a6b6d7104726b696708646b7067646d7a2d066d726770632d05226d72702d07616a706d6f672d0876706b66676c762d046f716b670674676c666d7006456d6d656e670568716d6c7204606d667b14656776476e676f676c7671407b5663654c636f67046a676366067161706b7276015d0961636e6e606361693f037170610b70676f6d7467416a6b6e660b637272676c66416a6b6e660e766d406b6c63707b5176706b6c650c64706d6f416a6370416d66670d766d576b6c763130437070637b0a616a6370416d66674376056b6c7631300a36303b363b3435303b37026f7a04646b7a6912676c61707b7276576b6c763130437070637b12666761707b7276576b6c763130437070637b0a7776643a476c616d66670e5c595e7a32322f5e7a35645f2826104f636e646d706f6766227176706b6c65157776643a4667616d6667516a6d70765176706b6c651f576c646b6c6b716a6766225756442f3a226d617667762271677377676c616729416a63706361766770226d7776716b66672274636e6b6622576c6b616d66672270636c65673822327a15406366225756442f3a22676c616d666b6c6522327a147776643a4667616d66674e6d6c655176706b6c650a7776643a4667616d66670e5c595e7a32322f5e7a64645f282606717760717670057a7a76676307666761707b72760e6063716734365176636c666370664046696672656a3658497153403a322d4f64747531345a4b33503037295557436e476b354c4e606d735b564d5277786f4468486c707b7a3b4a5445616351764167106063716734365d616a63704b6c66677a40434041464744454a4b48494e4f4c4d52535051565754555a5b58636061666764656a6b68696e6f6c6d72737071767774757a7b7832333031363734353a3b292d146063716734365176636c666370664667616d6667096063716734365d616a066034365d313208656776526370636f08726370636f57706e013d026d6c036d64640971677651756b76616a0e5d726370636f51756b76616a4d6c0f5d607b7667665d726370636f5d71751265677651756b76616a44706d6f4163616a670f666776676176436c6d6f636e6b67710a666b70676176516b656c0a616d6c716b7176676c760671756b76616a03666d6f046c6d666707726a636c766d6f046a6d6d690b76677176446763767770670e637171676f606e67506771776e760469677b710b7166606f5d717663606e67047166606f107166606f5d717663606e675d726d6c7b076567765263766a222a6a767672385e2d5e2d7e6a76767271385e2d5e2d7e5e2d5e2d2b3d595c5e2d5f2808656776537767707b0e593d5f2a5e75293f2c28243d2b280124076d6068516d7076097176706b6c656b647b02797f04716d70760868716d6c516d7076076b71437070637b036f637206706766776167076d6068305176701261636c7463715d646b6c65677072706b6c7605756b66766a066a676b656a760230660a3336727a227167706b6404646d6c7608646b6e6e56677a7604c09f9a8e138e22c0acbf0a716a63666d75406e77700b716a6d754d64647167765a046e6b6f6709716a6d75416d6e6d7003637061067176706d69670965677641636c7463710a313531373b303a37373b0f416d6c646b65477a616772766b6d6c076f677171636567116a6371516771716b6d6c51766d706365670f6a63714e6d61636e51766d706365670c6a63714b6c66677a676646400c65677643606b6e6b766b67710d6567765067716d6e77766b6d6c0671617067676c0a616d6e6d70466772766a126567764374636b6e5067716d6e77766b6d6c0a6374636b6e556b66766a0b6374636b6e4a676b656a760e6567764063767667707b4b6c646d0a6567764063767667707b04766a676c08616a6370656b6c650c616a6370656b6c65566b6f670f666b71616a6370656b6c65566b6f67056e6774676e0c656776566d77616a4b6c646d0e6f637a566d77616a526d6b6c76710b6170676376674774676c760a566d77616a4774676c760c6d6c766d77616a71766370760b656776566b6f67786d6c670771677646637667087167764f6d6c766a11656776566b6f67786d6c674d6464716776036f6b6c08656776446d6c7671096f6d6c6d71726361670a71636c712f7167706b64057167706b64047172636c0d6f6f6f6f6f6f6f6f6f6f6e6e6b096b6c6c67704a564f4e0571767b6e67043530727a08646d6c76516b78670a646d6c7644636f6b6e7b0b6d6464716776556b66766a0c6d64647167764a676b656a760c5670676077616a6776224f5109556b6c65666b6c657107517b6e6463676c085167656d6722574b0a416d6c7176636c766b630b516b6f51776c2f477a7640084f5622477a7670630545776e6b6f0a4e67676e6375636667670556776c6563064f676b707b6d0654706b6c666309416d70666b63575241094372637063686b7663074b706b715752410852636e63766b6c6d0a416d6e6d6c6c63224f5608526e637b606b6e6e08486d6967706f636c09526370616a6f676c760a4f51224d77766e6d6d690956752241676c224f56064d52564b4f4306447776777063064354474c4b500c43706b636e224a67607067750a5163746d7b67224e47560941637176676e6e63700a4f5b504b43462252504d012e0e656776517b6c76637a4770706d701041706763766722556760516d616967760f6567764c63766b74674e676c65766a086567765076614b720b746b746d60706d757167701150564152676770416d6c6c6761766b6d6c146f6d7850564152676770416d6c6c6761766b6d6c17756760696b7650564152676770416d6c6c6761766b6d6c1c7176776c387176776c2c6e2c656d6d656e672c616d6f38333b3132300477706e710a6b6167516770746770713e2a59322f3b5f79332e317f2a5e2c59322f3b5f79332e317f2b79317f7e59632f64322f3b5f79332e367f2a3859632f64322f3b5f79332e367f2b79357f2b355c2a333b305e2c33343a5e2c7e33343b5e2c3037365e2c7e33325e2c7e3335305e2c2a3359342f3b5f7e305e667e315932335f2b2b1161706763766746637663416a636c6c676e0b6170676376674d64646770137167764e6d61636e46677161706b72766b6d6c0961636c666b6663766704677a67610e6d6c6b616761636c666b666376670477776b66207a7a7a7a7a7a7a7a7a7a7a7a367a7a7a7b7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a04597a7b5f017a0d616a676169416e6b676c764b660b656776416e6b676c764b66057676616b660d676c61707b7276516761466b6640434041464744454a4b48494e4f4c4d52535051565754555a5b58636061666764656a6b68696e6f6c6d72737071767774757a7b7832333031363734353a3b2f2c0e637171676f606e67526370636f710172017007646d704763616a025c5c01340c647252706d646b6e6757706e033d733f087067765d616d66670264720e5d607b7667665d7167615d666b660c5d7063755d7167615d666b660776765d71616b660366647203636b66016c0164097176637076566b6f6701760963606b6e6b766b67710a766b6f677176636f7233136a63706675637067416d6c61777070676c617b0c6667746b61674f676f6d707b086e636c65776365670a7067716d6e77766b6d6c0f6374636b6e5067716d6e77766b6d6c0971617067676c566d720a71617067676c4e676476106667746b6167526b7a676e5063766b6d0a72706d66776176517760076063767667707b09766d77616a4b6c646d08766b6f67786d6c670a766b6f677176636f7230076572774b6c646d0b6871446d6c76714e6b71760b726e77656b6c714e6b71760a766b6f677176636f72310a67746770416d6d696b67016f0b717b6c76637a4770706d700c6c63766b74674e676c65766a057076614b52096472546770716b6d6c0b5d5d746770716b6d6c5d5d08616e6b676c764b660a766b6f677176636f72360b677a76676c66446b676e6603636e6e107176637076516b6f726b646b67665760106366664774676c764e6b7176676c677009636666566d4e6b71760671726e6b61670166017b136a636c666e6749677b606d6370664774676c7606636e7649677b076176706e49677b076f67766349677b08716a6b647649677b036c6d75136a636c666e67526d716b766b6d6c4774676c760e616a636c656766566d77616a677109766d77616a6f6d746707766d77616a6771023b3007616e6b676c765a07616e6b676c765b106a636c666e67416e6b61694774676c760a766d77616a71766370760861636e614f67636c1561636e615176636c666370664667746b63766b6d6c04717370760961636e61517267676604322c323315656776516b6f726e6b646b67665760506771776e7603322c3702323209656776566771764b660b5d5d63615d766771766b660f65676c6770637667566771764e6d6501600c656776516b656c63767770670377706e2c6c6d6c6167226f77717622606722636c226d606867617622756b766a22632277706e2272706d726770767b230b666d6f4c6d7654636e6b660872706d766d616d6e043232323208323232323232333302333207646d707067636e056667607765056c6d6c61670b606d667b54636e307176700a606d667b5d6a63716a3f05737767707b066371716b656c097263766a6c636f673f0976765d7567606b663f062477776b663f086c6d6c61675176700a36303b363b3435303b34096467546770716b6d6c033232320b7277716a546770716b6d6c01280a65677654636e77672633106c63746b6563766d70516b656c636e710b637272416d66674c636f67076372724c636f670772706d6677617608617277416e637171056d716172770974676c666d705177600a666d4c6d76567063616907746b60706376670b61706766676c766b636e710771766d706365671b706773776771764f67666b6349677b517b7176676f43616167717109606e7767766d6d766a0d756b6c666d75516b656c636e71054b6f6365670771617067676c5a0771617067676c5b0f6b71516761777067416d6c76677a7607766d6d6e6063700b6e6d6163766b6d6c6063700d4361766b74675a4d606867617608677a7667706c636e0b726d71764f6771716365671b756760696b7650677377677176436c6b6f63766b6d6c4470636f670d406e7767766d6d766a57574b46086c677671616372670f666d61776f676c76516b656c636e710c616a637063617667705167760a616d6f7263764f6d6667066e637b677071066b6f636567710e656776556760656e41636c74637112677a7267706b6f676c76636e2f756760656e0d6f637a436c6b716d76706d727b1e475a565d76677a767770675d646b6e7667705d636c6b716d76706d726b6125554740494b565d475a565d76677a767770675d646b6e7667705d636c6b716d76706d726b61224f4d585d475a565d76677a767770675d646b6e7667705d636c6b716d76706d726b611e4f435a5d56475a565750475d4f435a5d434c4b514d56504d525b5d475a560c756760656e516b656c636e7105554740454e16656776517772726d70766766477a76676c716b6d6c7113717772726d70766766477a76676c716b6d6c7114656776416d6c76677a76437676706b607776677109636c766b636e6b637109404e57475d404b565108606e7767406b76710a464752564a5d404b565109666772766a406b76710a455047474c5d404b565109657067676c406b7671204f435a5d414d4f404b4c47465d56475a565750475d4b4f4345475d574c4b56511c6f637a416d6f606b6c676656677a767770674b6f636567576c6b7671194f435a5d415740475d4f43525d56475a565750475d514b5847156f637a417760674f637256677a76777067516b78671c4f435a5d445043454f474c565d574c4b444d504f5d544741564d5051196f637a447063656f676c76576c6b646d706f546761766d7071154f435a5d50474c4647504057444447505d514b5847136f637a50676c666770607764646770516b7867174f435a5d56475a565750475d4b4f4345475d574c4b5651146f637a56677a767770674b6f636567576c6b7671104f435a5d56475a565750475d514b58470e6f637a56677a76777067516b7867134f435a5d5443505b4b4c455d544741564d5051116f637a5463707b6b6c65546761766d7071124f435a5d54475056475a5d435656504b4051106f637a54677076677a437676706b60711e4f435a5d54475056475a5d56475a565750475d4b4f4345475d574c4b56511a6f637a54677076677a56677a767770674b6f636567576c6b76711a4f435a5d54475056475a5d574c4b444d504f5d544741564d5051176f637a54677076677a576c6b646d706f546761766d707118514a43464b4c455d4e434c45574345475d544750514b4d4c16716a63666b6c654e636c6577636567546770716b6d6c0c5156474c414b4e5d404b56510b7176676c616b6e406b767107544750514b4d4c066563766a6770096c63746b6563766d7006756b6c666d7503657277075147414b4c444d0a6567765167614b6c646d09766b6f677176636f720d6b71476c63606e67665263766a145d676c63606e675263766a4e6b7176506765677a0c6b6c766770616772765a4a500e5a4f4e4a7676725067737767717610716776506773776771764a67636667700471676c66106d746770706b66674f6b6f67567b72670f5d63615d6b6c766770616772766766055d71676c66155d607b7667665d6b6c766770616772765d6e6b71760464776c6109637065776f676c76710e5c616d6c76676c762f767b72672601390e5d607b7667665d616d6c76676c76115d6d746770706b66674f6b6f67567b72670d5d607b7667665d6f67766a6d660a5d607b7667665d77706e076d6c63606d7076066d6c6e6d6366096d6c6e6d6366676c660b6d6c6e6d636671766370760a6d6c72706d6570677171096d6c766b6f676d77760b5d716b656c63767770673f0b5d607b7667665d606d667b126d6c706763667b7176637667616a636c65670c706771726d6c7167567b726707766b6f676d77760677726e6d636604524d5156216372726e6b6163766b6d6c2d7a2f7575752f646d706f2f77706e676c616d666766106372726e6b6163766b6d6c2d68716d6c04716b656c0371666b0d7167614b6c646d4a67636667700e6b6c76677061677276446776616a0975706372446776616a03454756066f67766a6d660b766d57727267704163716705616e6d6c670476677a76076a676366677071165d5d63615d6b6c7667706167727667665d646776616a05646776616a0d717772726d707671446776616a145d656776446776616a416d6c76676c76567b72670c616d6c76676c762f767b72670b7772666376674c6d6c61670572637071670f60776b6e664c677550677377677176037167760870676467707067700e7067646770706770526d6e6b617b046f6d6667056163616a67087067666b70676176096b6c766765706b767b0e656776506775706b76676657706e105d77706e506775706b766750776e67710b706775706b766757706e22084d504b454b4c38220b08504755504b56474638220b6e6371764b6c66677a4d640125032730350860776b6e6657706e0c245d716b656c63767770673f0c3d5d716b656c63767770673f096b6c76677061677276196b714b6c7176636c61674d64407b76676643617063756e67700d407b76676643617063756e6770076d72766b6d6c71046b6c6b760e676c63606e675263766a4e6b71760f77706e506775706b766750776e6771045d6664720f74636e6b666376674d72766b6d6c711e6d72766b6d6c22636b662a4b6c76676567702b226b71226c676766676623276d72766b6d6c22676c63606e675263766a4e6b71762a437070637b2b226b71226c6767666766231065676c5263766a4e6b7176506765677a1265676c57706e506775706b7667506765677a0a656776506764677067700c5d5d63615d70676467706770106667636e506764677067704163616a670a7067646770677049677b0a5d5d63615d606e636c692a41636c6c6d7622616d6c7467707622776c6667646b6c6766226d70226c776e6e22766d226d60686761760e6a63714d756c52706d726770767b0574636e77670875706b7663606e670c616d6c646b65777063606e671472706d726770767b4b71476c776f677063606e670e766d4e6d61636e675176706b6c650774636e77674d640d6b7152706d766d767b72674d64204d60686761762c69677b712261636e6e6766226d6c226c6d6c2f6d606867617606302c33332c320640365834756d0c5a2f4f717166692f4b6c646d03606d67296a76767271382d2d7a7a60652c716c717166692c616d6f2d7567607166692d74332d6567764b6c646d236a76767271382d2d7a7a60652c716c717166692c616d6f2d7567607166692d74332d72236a76767271382d2d7a7a60652c716c717166692c616d6f2d7567607166692d74332d7605776057706e0a3034373636313735343b02373302363a03276122022f3c0d616d6e6d703821603333376630096f6d7771676f6d74670769677b666d756c096f6d777167666d756c0232300232330a5d5d67714f6d66776e67",
    [, , undefined, undefined, undefined, Object, undefined, TypeError, document, undefined, undefined, Date, Math, navigator, location, history, Image,
        console, PluginArray, indexedDB,  DOMException , parseInt, String, Array, Error, JSON, Promise, WebSocket, eval,  setTimeout,
        encodeURIComponent, encodeURI, Request, Headers, decodeURIComponent, RegExp]);

var tea_iife_export = function(e) {
    "use strict";
    var t = function() {
        return (t = Object.assign || function(e) {
                for (var t, i = 1, n = arguments.length; i < n; i++)
                    for (var r in t = arguments[i])
                        Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
                return e
            }
        ).apply(this, arguments)
    };
    function i(e, t) {
        var i = "function" == typeof Symbol && e[Symbol.iterator];
        if (!i)
            return e;
        var n, r, o = i.call(e), s = [];
        try {
            for (; (void 0 === t || t-- > 0) && !(n = o.next()).done; )
                s.push(n.value)
        } catch (e) {
            r = {
                error: e
            }
        } finally {
            try {
                n && !n.done && (i = o.return) && i.call(o)
            } finally {
                if (r)
                    throw r.error
            }
        }
        return s
    }
    function n() {
        for (var e = [], t = 0; t < arguments.length; t++)
            e = e.concat(i(arguments[t]));
        return e
    }
    var r, o = (function(e, t) {
        var i;
        i = function() {
            function e() {
                for (var e = 0, t = {}; e < arguments.length; e++) {
                    var i = arguments[e];
                    for (var n in i)
                        t[n] = i[n]
                }
                return t
            }
            function t(e) {
                return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent)
            }
            return function i(n) {
                function r() {}
                function o(t, i, o) {
                    if ("undefined" != typeof document) {
                        "number" == typeof (o = e({
                            path: "/"
                        }, r.defaults, o)).expires && (o.expires = new Date(1 * new Date + 864e5 * o.expires)),
                            o.expires = o.expires ? o.expires.toUTCString() : "";
                        try {
                            var s = JSON.stringify(i);
                            /^[\{\[]/.test(s) && (i = s)
                        } catch (e) {}
                        i = n.write ? n.write(i, t) : encodeURIComponent(String(i)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent),
                            t = encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
                        var a = "";
                        for (var c in o)
                            o[c] && (a += "; " + c,
                            !0 !== o[c] && (a += "=" + o[c].split(";")[0]));
                        return document.cookie = t + "=" + i + a
                    }
                }
                function s(e, i) {
                    if ("undefined" != typeof document) {
                        for (var r = {}, o = document.cookie ? document.cookie.split("; ") : [], s = 0; s < o.length; s++) {
                            var a = o[s].split("=")
                                , c = a.slice(1).join("=");
                            i || '"' !== c.charAt(0) || (c = c.slice(1, -1));
                            try {
                                var h = t(a[0]);
                                if (c = (n.read || n)(c, h) || t(c),
                                    i)
                                    try {
                                        c = JSON.parse(c)
                                    } catch (e) {}
                                if (r[h] = c,
                                e === h)
                                    break
                            } catch (e) {}
                        }
                        return e ? r[e] : r
                    }
                }
                return r.set = o,
                    r.get = function(e) {
                        return s(e, !1)
                    }
                    ,
                    r.getJSON = function(e) {
                        return s(e, !0)
                    }
                    ,
                    r.remove = function(t, i) {
                        o(t, "", e(i, {
                            expires: -1
                        }))
                    }
                    ,
                    r.defaults = {},
                    r.withConverter = i,
                    r
            }(function() {})
        }
            ,
            e.exports = i()
    }(r = {
        exports: {}
    }, r.exports),
        r.exports), s = function() {
        function e() {
            this.cache = {}
        }
        return e.prototype.setItem = function(e, t) {
            this.cache[e] = t
        }
            ,
            e.prototype.getItem = function(e) {
                return this.cache[e]
            }
            ,
            e.prototype.removeItem = function(e) {
                this.cache[e] = void 0
            }
            ,
            e
    }();
    var a = {
        getItem: function(e) {
            try {
                var t = localStorage.getItem(e)
                    , i = t;
                try {
                    t && "string" == typeof t && (i = JSON.parse(t))
                } catch (e) {}
                return i || void 0
            } catch (e) {}
        },
        setItem: function(e, t) {
            try {
                var i = "string" == typeof t ? t : JSON.stringify(t);
                localStorage.setItem(e, i)
            } catch (e) {}
        },
        removeItem: function(e) {
            try {
                localStorage.removeItem(e)
            } catch (e) {}
        },
        getCookie: function(e, t) {
            try {
                return o.get(e, {
                    domain: t || document.domain
                })
            } catch (e) {
                return ""
            }
        },
        setCookie: function(e, t, i, n) {
            try {
                var r = n || document.domain
                    , s = +new Date + i;
                o.set(e, t, {
                    expires: new Date(s),
                    path: "/",
                    domain: r
                })
            } catch (e) {}
        },
        isSupportLS: function() {
            try {
                return localStorage.setItem("_ranger-test-key", "hi"),
                    localStorage.getItem("_ranger-test-key"),
                    localStorage.removeItem("_ranger-test-key"),
                    !0
            } catch (e) {
                return !1
            }
        }()
    }
        , c = {
        getItem: function(e) {
            try {
                var t = sessionStorage.getItem(e)
                    , i = t;
                try {
                    t && "string" == typeof t && (i = JSON.parse(t))
                } catch (e) {}
                return i || void 0
            } catch (e) {}
        },
        setItem: function(e, t) {
            try {
                var i = "string" == typeof t ? t : JSON.stringify(t);
                sessionStorage.setItem(e, i)
            } catch (e) {}
        },
        removeItem: function(e) {
            try {
                sessionStorage.removeItem(e)
            } catch (e) {}
        },
        isSupportSession: function() {
            try {
                return sessionStorage.setItem("_ranger-test-key", "hi"),
                    sessionStorage.getItem("_ranger-test-key"),
                    sessionStorage.removeItem("_ranger-test-key"),
                    !0
            } catch (e) {
                return !1
            }
        }()
    }
        , h = function() {
        function e(e, t) {
            this._storage = t && "session" === t ? c : !e && a.isSupportLS ? a : new s
        }
        return e.prototype.getItem = function(e) {
            return this._storage.getItem(e)
        }
            ,
            e.prototype.setItem = function(e, t) {
                this._storage.setItem(e, t)
            }
            ,
            e.prototype.getCookie = function(e, t) {
                return this._storage.getCookie(e, t)
            }
            ,
            e.prototype.setCookie = function(e, t, i, n) {
                this._storage.setCookie(e, t, i, n)
            }
            ,
            e.prototype.removeItem = function(e) {
                this._storage.removeItem(e)
            }
            ,
            e
    }()
        , u = {
        cn: "1fz22z22z1nz21z4mz4bz4bz1kz1az21z4az21z1lz21z21z1bz1iz4az1az1mz1k",
        sg: "1fz22z22z1nz21z4mz4bz4bz21z1ez18z1jz1gz49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k",
        va: "1fz22z22z1nz21z4mz4bz4bz1kz18z1jz1gz24z18z49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k"
    }
        , l = "/v1/user/webid"
        , d = "/v1/list"
        , p = "4.1.54"
        , f = {
        NO_URL: 4001,
        IMG_ON: 4e3,
        IMG_CATCH: 4002,
        BEACON_FALSE: 4003,
        XHR_ON: 500,
        RESPONSE: 5001,
        TIMEOUT: 5005
    }
        , _ = function(e, t) {
        return t ? "__tea_cache_tokens_" + e : "__tea_cache_events_" + e
    }
        , g = function(e) {
        return "__tea_cache_config_" + e
    }
        , m = function(e) {
        return "__tea_session_id_" + e
    }
        , v = function() {
        if ("undefined" != typeof window)
            return window.TeaAnalyticsObject
    }
        , z = {
        autotrack: {
            src: {
                cn: "1fz22z22z1nz21z4mz4bz4bz1jz1dz4dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz18z23z22z1mz22z20z18z1az1iz4az1hz21",
                va: "1fz22z22z1nz21z4mz4bz4bz21z1dz4dz4iz49z21z1az1kz1az1bz1lz49z24z18z4az1gz19z27z22z1cz1bz22z1mz21z4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az49z23z21z4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz18z23z22z1mz22z20z18z1az1iz4az1hz21",
                sg: "1fz22z22z1nz21z4mz4bz4bz21z1dz4dz4iz49z21z1az1kz1az1bz1lz49z21z1ez4az1gz19z27z22z1cz1bz22z1mz21z4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az49z21z1ez4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz18z23z22z1mz22z20z18z1az1iz4az1hz21"
            },
            object: "TeaAutoTrack"
        }
    }
        , y = {
        cn: "1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",
        va: "1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1gz22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",
        sg: "1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k"
    }
        , b = "__rangers_ab_style__"
        , k = "v1/list_test"
        , w = "1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz24z1gz21z23z18z1jz49z18z19z49z1az1mz20z1cz4az1hz21";
    function S(e, t, i, n, r, o, s) {
        try {
            var a = new XMLHttpRequest
                , c = s || "POST";
            a.open(c, "" + e, !0),
                a.setRequestHeader("Content-Type", "application/json; charset=utf-8"),
            r && a.setRequestHeader("X-MCS-AppKey", "" + r),
                a.onload = function() {
                    if (i) {
                        var e = null;
                        if (a.responseText) {
                            try {
                                e = JSON.parse(a.responseText)
                            } catch (t) {
                                e = {}
                            }
                            i(e, t)
                        }
                    }
                }
            ;
            try {
                o && (a.timeout = o),
                o && (a.ontimeout = function() {
                        n && n(t, f.TIMEOUT)
                    }
                ),
                    a.onerror = function() {
                        a.abort(),
                        n && n(t, f.XHR_ON)
                    }
                    ,
                    a.send(JSON.stringify(t))
            } catch (e) {}
        } catch (e) {}
    }
    var I = function(e, t, i, n) {
        try {
            var r = e.match(/\/v\d\//)
                , o = "";
            o = r ? r[0] : -1 !== e.indexOf("/v1/") ? "/v1/" : "/v2/";
            var s = e.split(o)[0];
            if (!s)
                return void n(e, t, f.NO_URL);
            t.forEach(function(r) {
                var o = function(e) {
                    var t = "";
                    for (var i in e)
                        e.hasOwnProperty(i) && void 0 !== e[i] && (t += "&" + i + "=" + encodeURIComponent(JSON.stringify(e[i])));
                    return t = "&" === t[0] ? t.slice(1) : t
                }(r)
                    , a = new Image(1,1);
                a.onload = function() {
                    a = null,
                    i && i()
                }
                    ,
                    a.onerror = function() {
                        a = null,
                        n && n(e, t, f.IMG_ON)
                    }
                    ,
                    a.src = s + "/v1/gif?" + o
            })
        } catch (i) {
            n && n(e, t, f.IMG_CATCH, i.message)
        }
    }
        , O = function(e, t, i, n, r, o, s, a, c) {
        var h = window.navigator.userAgent
            , u = -1 !== window.navigator.appName.indexOf("Microsoft Internet Explorer") && (-1 !== h.indexOf("MSIE 8.0") || -1 !== h.indexOf("MSIE 9.0"))
            , l = !!n;
        if (!l && u)
            I(e, i, r, o);
        else if (!l && a)
            return window.navigator && window.navigator.sendBeacon ? (c && c(),
                void (window.navigator.sendBeacon(e, JSON.stringify(i)) ? r() : o(e, i, f.BEACON_FALSE))) : void I(e, i, r, o);
        s && delete i.app_key,
            S(e, i, r, o, n, t)
    };
    function x(e) {
        return e ? (e ^ 16 * Math.random() >> e / 4).toString(10) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, x)
    }
    var E = function() {
        return x().replace(/-/g, "").slice(0, 19)
    };
    var T = function(e) {
        return function(e, t, i) {
            if ("string" == typeof e && "number" == typeof t && "number" == typeof i) {
                var n, r = [];
                i = i <= 25 ? i : i % 25;
                var o = String.fromCharCode(i + 97);
                n = e.split(o);
                for (var s = 0; s < n.length; s++) {
                    var a = parseInt(n[s], i);
                    a = 1 * a ^ t;
                    var c = String.fromCharCode(a);
                    r.push(c)
                }
                return r.join("")
            }
        }(e, 64, 25)
    }
        , C = function() {
        function e(e, t, i, n) {
            this.config = e,
                this.cfg = t,
                this.storage = new h(!1),
                this.appInfo = e.app_key || e.app_id,
                this.isNoWebid = e.disable_webid,
                this.isNoSsid = e.disable_webid || e.disable_ssid,
                this.domain = e.channel_domain || T(u[e.channel]),
                this.tokenReady = !1,
                this.checkExp = e.checkExp || !1,
                this.enableCookie = e.cross_subdomain || !1,
                this.expiresTime = this.enableCookie ? 94608e6 : 0,
                this.fetchUrl = "" + this.domain + l,
                this.uuidQueue = [],
                this.sendQueue = [],
                this.hook = i,
                this.cookieDomain = e.cookie_domain || "",
                this.session = n
        }
        return e.prototype._getToken = function() {
            this.tokensKey = _(this.appInfo, !0),
                this.cookieKey = "__tea_cookie_tokens_" + this.appInfo;
            try {
                var e = this.storage.getItem(this.tokensKey);
                if (this.enableCookie) {
                    var t = this.storage.getCookie(this.cookieKey, this.cookieDomain);
                    if (t) {
                        t = decodeURIComponent(t);
                        var i = (t = JSON.parse(t)).user_unique_id
                            , n = t.web_id
                            , r = t.timestamp
                            , o = t.ssid;
                        this._setToken(n, i, o, r)
                    } else {
                        if (!e)
                            return void this._requestWebId();
                        this.storage.setCookie(this.cookieKey, encodeURIComponent(JSON.stringify(e)), this.expiresTime, this.cookieDomain),
                            this._checkLocal(e)
                    }
                } else {
                    if (!e)
                        return void this._requestWebId();
                    this._checkLocal(e)
                }
            } catch (e) {}
        }
            ,
            e.prototype._checkLocal = function(e) {
                if (!e.web_id) {
                    var t = this.storage.getCookie("tt_webid")
                        , i = this.storage.getCookie("__tea_sdk__ssid")
                        , n = this.storage.getCookie("__tea_sdk__user_unique_id");
                    if (t && i && n) {
                        var r = {
                            web_id: t,
                            ssid: i,
                            user_unique_id: n,
                            timestamp: Date.now()
                        };
                        this.storage.setItem(this.tokensKey, r)
                    }
                }
                var o = this.storage.getItem(this.tokensKey)
                    , s = (n = o.user_unique_id,
                    t = o.web_id,
                    o.timestamp);
                i = o.ssid;
                t && n ? this._setToken(t, n, i, s) : this._requestWebId()
            }
            ,
            e.prototype._setToken = function(e, t, i, n) {
                if (this.uuid = t,
                    this.web_id = e,
                    this.ssid = i,
                    this.checkExp) {
                    var r = Date.now() - parseFloat(n);
                    if (r > 7344e6)
                        return void this._requestWebId();
                    if (r > 432e7)
                        return void this._updateWebId(e)
                }
                this._complete(e, t, i)
            }
            ,
            e.prototype._complete = function(e, t, i) {
                this.cfg.envInfo.user.ssid = i,
                    this.cfg.envInfo.user.web_id = e,
                    this.cfg.envInfo.user.user_unique_id = t,
                    this.tokenReady = !0
            }
            ,
            e.prototype._requestWebId = function() {
                this.isNoWebid ? this._setTokenId(E(), "", "", !0) : this._fetchWebId(this.fetchUrl, !1)
            }
            ,
            e.prototype._updateWebId = function(e) {
                var t = "" + this.domain + l + "/" + e + "/update";
                this._fetchWebId(t, !0)
            }
            ,
            e.prototype._fetchWebId = function(e, t) {
                var i = this;
                this.isGetWebId = !0,
                    O(e, 5e3, {
                        app_key: this.config.app_key,
                        app_id: this.config.app_id,
                        url: location.href,
                        user_agent: window.navigator.userAgent,
                        referer: document.referrer,
                        user_unique_id: ""
                    }, this.config.app_key, function(e) {
                        i.isGetWebId = !1,
                            e && 0 === e.e ? (i.web_id = e.web_id,
                                i.uuidQueue.length ? i._requestSsId(i.uuidQueue[0]) : i._setTokenId(e.web_id, "", t ? i.ssid : e.ssid, !0)) : (i.hook.emit("token-error"),
                                console.warn("[]appid: " + i.config.app_id + ", get webid error, init error~"))
                    }, function() {
                        i.isGetWebId = !1,
                            i.hook.emit("token-error"),
                            console.warn("[]appid: " + i.config.app_id + ", get webid error, init error~")
                    }, !0)
            }
            ,
            e.prototype._setTokenId = function(e, t, i, n) {
                var r = this.cfg.envInfo.user.web_id || e
                    , o = {
                    web_id: r,
                    ssid: i,
                    user_unique_id: t || r,
                    timestamp: Date.now()
                };
                this.enableCookie && this.storage.setCookie(this.cookieKey, encodeURIComponent(JSON.stringify(o)), this.expiresTime, this.cookieDomain),
                    this.storage.setItem(this.tokensKey, o),
                    this.cfg.envInfo.user.ssid = i,
                    this.cfg.envInfo.user.web_id = r,
                    this.cfg.envInfo.user.user_unique_id = t || r,
                    this.uuid = t || r,
                    this.web_id = r,
                    this.ssid = i,
                n && (this.tokenReady = !0,
                    this.hook.emit("token-ready"))
            }
            ,
            e.prototype._getSsid = function(e) {
                e && -1 === ["0", "Null", "None", "", "undefined"].indexOf(e) && this.uuid !== e && (this.uuidQueue.push(e),
                    this.uuid = e,
                    this.cfg.envInfo.user.user_unique_id = e,
                -1 === this.uuidQueue.indexOf(e) && this.uuidQueue.push(e),
                this.isNoSsid || this.isGetWebId || (this.tokenReady = !1,
                    this._requestSsId(e),
                    this.sendQueue.push(e)),
                    this.session._resetSessionId())
            }
            ,
            e.prototype._requestSsId = function(e) {
                var t = this;
                if (!this.sendQueue.length) {
                    var i = this.domain + "/v1/user/ssid";
                    O(i, 5e3, {
                        app_key: this.config.app_key,
                        app_id: this.config.app_id,
                        web_id: this.web_id,
                        user_unique_id: e
                    }, this.config.app_key, function(i) {
                        t.sendQueue = [],
                        t.uuidQueue.length && t.uuidQueue.splice(t.uuidQueue.indexOf(e), 1),
                            i && 0 === i.e ? (t._setTokenId(t.web_id, e, i.ssid, 0 === t.uuidQueue.length),
                            t.uuidQueue.length && t._requestSsId(t.uuidQueue[0])) : (t.tokenReady = !0,
                                t.hook.emit("token-ready"),
                                console.warn("[]appid: " + t.config.app_id + ", get ssid error"))
                    }, function() {
                        t.tokenReady = !0,
                            t.hook.emit("token-ready")
                    }, !0)
                }
            }
            ,
            e.prototype.isTokenReady = function() {
                return this.tokenReady
            }
            ,
            e
    }()
        , A = function(e) {
        !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) ? window.addEventListener("pagehide", e, !1) : window.addEventListener("beforeunload", e, !1)
    }
        , N = function(e, t, i) {
        void 0 === e && (e = []),
        void 0 === t && (t = function(e) {
                return e
            }
        ),
        void 0 === i && (i = 20);
        var n, r = [], o = 0;
        return e.forEach(function(e) {
            var s = t(e);
            void 0 === n ? n = s : (s !== n || r[o].length >= i) && (o += 1,
                n = s),
                r[o] = r[o] || [],
                r[o].push(e)
        }),
            r
    }
        , V = function() {
        function e(e, t, i, n, r, o, s) {
            this.collect = e,
                this.cfg = i,
                this.config = t,
                this._token = n,
                this.appInfo = t.app_id || t.app_key,
                this.debugMode = !!t.log,
                this.evtDataKey = _(this.appInfo, !1);
            var a = t.channel_domain || T(u[t.channel]);
            if (this.reportUrl = t.report_url ? t.report_url : "" + a + d,
                this.storage = new h(!0),
                this.EventStorage = new h(!1),
                this.maxStorage = t.max_storage_num || -1,
                this.maxReport = t.max_report || 10,
                this.reportTime = t.reportTime || 30,
                this.timeout = t.timeout || 1e5,
                this.closeStorage = !0,
                this.plugin = r,
                this.session = o,
                this.filter = s,
                this.plugin) {
                var c = t.enable_storage
                    , l = t.disable_storage;
                (c || !1 === l) && (this.closeStorage = !1)
            }
            this.addListener()
        }
        return e.prototype.addListener = function() {
            var e = this;
            window.addEventListener("unload", function() {
                e.report(!0)
            }, !1),
                A(function() {
                    e.report(!0)
                }),
                document.addEventListener("visibilitychange", function() {
                    "hidden" === document.visibilityState && e.report(!0)
                }, !1)
        }
            ,
            e.prototype.setReady = function() {
                this.isReady = !0,
                this.closeStorage || this.checkStorageEvent(),
                    this.report()
            }
            ,
            e.prototype.event = function(e) {
                var t = this;
                void 0 === e && (e = []);
                try {
                    var i = n(e, this.storage.getItem(this.evtDataKey) || []);
                    this.storage.setItem(this.evtDataKey, i),
                    this.reportTimer && clearTimeout(this.reportTimer),
                        i.length >= this.maxReport ? this.report(!1) : this.reportTimer = setTimeout(function() {
                            t.report(!1),
                                t.reportTimer = null
                        }, this.reportTime)
                } catch (e) {}
            }
            ,
            e.prototype.beconEvent = function(e) {
                void 0 === e && (e = []);
                var t = this._mergeEvents(e);
                this._dealData(t, !0)
            }
            ,
            e.prototype.report = function(e) {
                if (void 0 === e && (e = !1),
                !this.collect.destroyInstance && this._token.isTokenReady() && this.isReady) {
                    var t = this.storage.getItem(this.evtDataKey) || []
                        , i = this._mergeEvents(t);
                    this.storage.removeItem(this.evtDataKey),
                        this._dealData(i, e)
                }
            }
            ,
            e.prototype._mergeEvents = function(e) {
                var i = this;
                if (!e.length)
                    return e;
                var n = this.cfg.get();
                n.header.custom = JSON.stringify(n.header.custom);
                return N(e, function(e) {
                    return !i.closeStorage && !!e.params.__disable_storage__
                }, this.maxReport).map(function(e) {
                    return t({
                        events: e.map(function(e) {
                            try {
                                if (e.event && "applog_trace" !== e.event) {
                                    var n = t({}, i.cfg.get("evtParams"), e.params);
                                    delete n.__disable_storage__;
                                    var r = [];
                                    if (i.plugin && i.plugin.ab && i.plugin.ab.versions && i.plugin.ab.extVersions) {
                                        r = [];
                                        r = i.config.enable_multilink || -1 !== window.location.href.indexOf("multilink=true") ? i.plugin.ab.mulilinkVersions.concat(i.plugin.ab.extVersions) : i.plugin.ab.versions.concat(i.plugin.ab.extVersions)
                                    }
                                    return t({}, e, {
                                        params: JSON.stringify(n),
                                        ab_sdk_version: r.join(","),
                                        session_id: i.session._getSessionId()
                                    })
                                }
                                return t({}, e, {
                                    params: JSON.stringify(e.params)
                                })
                            } catch (i) {
                                return t({}, e, {
                                    params: JSON.stringify(e.params)
                                })
                            }
                        }),
                        user: n.user,
                        header: n.header
                    }, i.closeStorage ? {} : {
                        __disable_storage__: e[0].params.__disable_storage__
                    }, {
                        verbose: i.debugMode ? 1 : void 0,
                        local_time: parseInt("" + (new Date).getTime() / 1e3)
                    })
                })
            }
            ,
            e.prototype._dealData = function(e, t) {
                var i = this;
                if (!e.length)
                    return e;
                var n = [];
                n = N(e, function(e) {
                    return !!e.__disable_storage__
                }, this.maxReport),
                !this.closeStorage && this.plugin.maxStorage && this.plugin.maxStorage(n, this.maxStorage, this.evtDataKey, this.storage);
                var r = {};
                n.forEach(function(e) {
                    var n = E()
                        , o = e;
                    try {
                        i.filter && (o = i.filter(e))
                    } catch (e) {}
                    if (!i.closeStorage && !e[0].__disable_storage__) {
                        var s = JSON.parse(JSON.stringify(e));
                        s && s[0] && (s[0].header.__storage_index__ = Date.now()),
                            r[n] = s,
                            i.EventStorage.setItem(i.evtDataKey, r)
                    }
                    i._send(n, o, t)
                })
            }
            ,
            e.prototype._send = function(e, t, i) {
                var n = this;
                this.isSending = !0;
                var r = function() {
                    n.isSending = !1
                };
                if (!this.closeStorage)
                    try {
                        t && t[0] && t[0].header.__storage_index__ && delete (t = JSON.parse(JSON.stringify(t)))[0].header.__storage_index__
                    } catch (e) {}
                this.plugin && this.plugin.et_test && this.plugin.et_test.send(t),
                    O(this.reportUrl, this.timeout, t, this.config.app_key, function(t, i) {
                        if (r(),
                        n.plugin && !n.closeStorage) {
                            var o = n.EventStorage.getItem(n.evtDataKey) || {};
                            Object.keys(o).length ? (delete o[e],
                                n.EventStorage.setItem(n.evtDataKey, o)) : n.EventStorage.removeItem(n.evtDataKey)
                        }
                        t && 0 !== t.e && n.collect && n.collect.tracer && 1 !== n.cfg.staging && n.collect.tracer.addErrorCount(i, "f_data", t.e, t)
                    }, function(e, t) {
                        r(),
                            n.cfg.get("reportErrorCallback")(e, t),
                        n.collect && n.collect.tracer && 1 !== n.cfg.staging && n.collect.tracer.addErrorCount(e, "f_net", t),
                        n.plugin && n.plugin.monitor && n.plugin.monitor.sdkError(n.config.app_key, n.reportUrl, e, t)
                    }, !1, i, r),
                this.plugin && this.plugin.monitor && this.plugin.monitor.sdkOnload(this.config.app_key, this.reportUrl, t)
            }
            ,
            e.prototype.checkStorageEvent = function() {
                var e = this;
                try {
                    var t = this.EventStorage.getItem(this.evtDataKey) || {}
                        , i = Object.keys(t);
                    if (i.length > 0) {
                        setTimeout(function n() {
                            for (var r = [], o = 0; o < e.maxReport; o++)
                                i.length > 0 && r.push(i.shift());
                            r.length > 0 && r.forEach(function(i) {
                                e._send(i, t[i], !1)
                            }),
                                setTimeout(n, 5)
                        }, 5)
                    }
                } catch (e) {}
            }
            ,
            e
    }()
        , j = function(e, t) {
        var i, n, r = function(e) {
                var t = document.createElement("a");
                return t.href = e,
                    t
            }, o = window.screen.width, s = window.screen.height, a = window.navigator.appVersion, c = window.navigator.userAgent, u = window.navigator.language, l = document.referrer, d = l ? r(l).hostname : "",
            p = function(e) {
                var t = r(e).search;
                t = t.slice(1);
                var i = {};
                return t.split("&").forEach(function(e) {
                    var t, n, r = e.split("=");
                    r.length && (t = r[0],
                        n = r[1]);
                    try {
                        i[t] = decodeURIComponent(void 0 === n ? "" : n)
                    } catch (e) {
                        i[t] = n
                    }
                }),
                    i
            }(window.location.href), f = "", _ = "", g = "", m = "" + parseFloat(a);
        -1 !== (i = c.indexOf("Opera")) && (g = "Opera",
            m = c.substring(i + 6),
        -1 !== (i = c.indexOf("Version")) && (m = c.substring(i + 8))),
            -1 !== (i = c.indexOf("Edge")) ? (g = "Microsoft Edge",
                m = c.substring(i + 5)) : -1 !== (i = c.indexOf("MSIE")) ? (g = "Microsoft Internet Explorer",
                m = c.substring(i + 5)) : -1 !== (i = c.indexOf("Lark")) ? (g = "Lark",
                m = c.substring(i + 5, i + 11)) : -1 !== c.indexOf("Chrome") ? -1 !== (i = c.indexOf("MicroMessenger")) ? (g = "weixin",
                m = c.substring(i + 15, i + 20)) : -1 !== (i = c.indexOf("MQQBrowser")) ? (g = "qqbrowser",
                m = c.substring(i + 11, i + 15)) : -1 !== (i = c.indexOf("360")) ? (g = "360browser",
                m = c.substring(c.indexOf("Chrome") + 7)) : -1 !== c.indexOf("baidubrowser") || -1 !== c.indexOf("BIDUBrowser") ? (-1 !== c.indexOf("baidubrowser") ? (i = c.indexOf("baidubrowser"),
                m = c.substring(i + 13, i + 16)) : -1 !== c.indexOf("BIDUBrowser") && (i = c.indexOf("BIDUBrowser"),
                m = c.substring(i + 12, i + 15)),
                g = "baidubrowser") : -1 !== (i = c.indexOf("xiaomi")) ? -1 !== c.indexOf("openlanguagexiaomi") ? (g = "openlanguage xiaomi",
                m = c.substring(i + 7, i + 13)) : (g = "xiaomi",
                m = c.substring(i - 7, i - 1)) : -1 !== (i = c.indexOf("TTWebView")) ? (g = "TTWebView",
                m = c.substring(i + 10, i + 23)) : -1 !== (i = c.indexOf("Chrome")) && (g = "Chrome",
                m = c.substring(i + 7)) : -1 !== c.indexOf("Safari") ? -1 !== (i = c.indexOf("QQ")) ? (g = "qqbrowser",
                m = c.substring(i + 10, i + 16)) : -1 !== (i = c.indexOf("Safari")) && (g = "Safari",
                m = c.substring(i + 7),
            -1 !== (i = c.indexOf("Version")) && (m = c.substring(i + 8))) : -1 !== (i = c.indexOf("Firefox")) ? (g = "Firefox",
                m = c.substring(i + 8)) : -1 !== (i = c.indexOf("MicroMessenger")) ? (g = "weixin",
                m = c.substring(i + 15, i + 20)) : -1 !== (i = c.indexOf("QQ")) && (g = "qqbrowser",
                m = c.substring(i + 3, i + 8)),
        -1 !== (n = m.indexOf(";")) && (m = m.substring(0, n)),
        -1 !== (n = m.indexOf(" ")) && (m = m.substring(0, n)),
        -1 !== (n = m.indexOf(")")) && (m = m.substring(0, n));
        for (var v, z, y = /Mobile|htc|mini|Android|iP(ad|od|hone)/.test(a) ? "wap" : "web", b = [{
            s: "Windows 10",
            r: /(Windows 10.0|Windows NT 10.0|Windows NT 10.1)/
        }, {
            s: "Windows 8.1",
            r: /(Windows 8.1|Windows NT 6.3)/
        }, {
            s: "Windows 8",
            r: /(Windows 8|Windows NT 6.2)/
        }, {
            s: "Windows 7",
            r: /(Windows 7|Windows NT 6.1)/
        }, {
            s: "Android",
            r: /Android/
        }, {
            s: "Sun OS",
            r: /SunOS/
        }, {
            s: "Linux",
            r: /(Linux|X11)/
        }, {
            s: "iOS",
            r: /(iPhone|iPad|iPod)/
        }, {
            s: "Mac OS X",
            r: /Mac OS X/
        }, {
            s: "Mac OS",
            r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/
        }], k = 0; k < b.length; k++) {
            var w = b[k];
            if (w.r.test(c)) {
                f = w.s;
                break
            }
        }
        function S(e, t) {
            var i = e.exec(t);
            return i && i[1] ? i[1] : ""
        }
        switch (/Windows/.test(f) && (_ = S(/Windows (.*)/, f),
            f = "windows"),
            f) {
            case "Mac OS X":
                v = c,
                    _ = (z = RegExp("(?:^|[^A-Z0-9-_]|[^A-Z0-9-]_|sprd-)(?:" + "Mac[ +]OS[ +]X(?:[ /](?:Version )?(\\d+(?:[_\\.]\\d+)+))?" + ")", "i").exec(v)) ? z.slice(1)[0] : "",
                    f = "mac";
                break;
            case "Android":
                _ = function(e) {
                    var t = S(/Android ([\.\_\d]+)/, e);
                    return t || (t = S(/Android\/([\.\_\d]+)/, e)),
                        t
                }(c),
                    f = "android";
                break;
            case "iOS":
                _ = (_ = /OS (\d+)_(\d+)_?(\d+)?/.exec(a)) ? _[1] + "." + _[2] + "." + (0 | _[3]) : "",
                    f = "ios"
        }
        var I = function(e, t, i) {
            var n = new h(!1)
                , r = new h(!1,"session")
                , o = e ? "_tea_utm_cache_" + e : "_tea_utm_cache"
                , s = e ? "_$utm_from_url_" + e : "_$utm_from_url"
                , a = {}
                , c = ["tr_shareuser", "tr_admaster", "tr_param1", "tr_param2", "tr_param3", "tr_param4", "$utm_from_url"]
                , u = {
                utm_source: t.utm_source,
                utm_medium: t.utm_medium,
                utm_campaign: t.utm_campaign,
                utm_term: t.utm_term,
                utm_content: t.utm_content,
                tr_shareuser: t.tr_shareuser,
                tr_admaster: t.tr_admaster,
                tr_param1: t.tr_param1,
                tr_param2: t.tr_param2,
                tr_param3: t.tr_param3,
                tr_param4: t.tr_param4
            };
            try {
                var l = !1;
                for (var d in u)
                    u[d] && (-1 !== c.indexOf(d) ? (a.hasOwnProperty("tracer_data") || (a.tracer_data = {}),
                        a.tracer_data[d] = u[d]) : a[d] = u[d],
                        l = !0);
                if (l)
                    r.setItem(s, "1"),
                        n.setCookie(o, JSON.stringify(a), 7776e6, i);
                else {
                    var p = n.getCookie(o, i);
                    p && (a = JSON.parse(p))
                }
                r.getItem(s) && (a.hasOwnProperty("tracer_data") || (a.tracer_data = {}),
                    a.tracer_data.$utm_from_url = 1)
            } catch (e) {
                return u
            }
            return a
        }(e, p, t);
        return {
            browser: g,
            browser_version: m,
            platform: y,
            os_name: f,
            os_version: _,
            userAgent: c,
            screen_width: o,
            screen_height: s,
            device_model: function(e) {
                var t = "";
                try {
                    if ("android" === e)
                        navigator.userAgent.split(";").forEach(function(e) {
                            e.indexOf("Build/") > -1 && (t = e.slice(0, e.indexOf("Build/")))
                        });
                    else if ("ios" === e || "mac" === e || "windows" === e) {
                        var i = navigator.userAgent.replace("Mozilla/5.0 (", "")
                            , n = i.indexOf(";");
                        t = i.slice(0, n)
                    }
                } catch (e) {}
                return t.trim()
            }(f),
            language: u,
            referrer: l,
            referrer_host: d,
            utm_source: I.utm_source,
            utm_medium: I.utm_medium,
            utm_campaign: I.utm_campaign,
            utm_term: I.utm_term,
            utm_content: I.utm_content,
            tracer_data: I.tracer_data
        }
    }
        , D = void 0
        , B = (new Date).getTimezoneOffset()
        , P = parseInt("" + -B / 60, 10)
        , q = 60 * B
        , U = function() {
        function e(e, t, i) {
            this.cookieDomain = t.cookie_domain || "",
                this.initConfig = t;
            var n = j(e, this.cookieDomain);
            this.configKey = g("" + e),
                this.sessionStorage = new h(!1,"session"),
                this.localStorage = new h(!1,"local"),
            i && (this.storage = 1 === i ? this.sessionStorage : this.localStorage),
                this.envInfo = {
                    user: {
                        user_unique_id: D,
                        user_type: D,
                        user_id: D,
                        user_is_auth: D,
                        user_is_login: D,
                        device_id: D,
                        web_id: D,
                        ip_addr_id: D,
                        ssid: D
                    },
                    header: {
                        app_id: D,
                        app_name: D,
                        app_install_id: D,
                        install_id: D,
                        app_package: D,
                        app_channel: D,
                        app_version: D,
                        os_name: n.os_name,
                        os_version: n.os_version,
                        device_model: n.device_model,
                        ab_client: D,
                        ab_version: D,
                        ab_sdk_version: D,
                        traffic_type: D,
                        client_ip: D,
                        device_brand: D,
                        os_api: D,
                        access: D,
                        language: n.language,
                        region: D,
                        app_language: D,
                        app_region: D,
                        creative_id: D,
                        ad_id: D,
                        campaign_id: D,
                        log_type: D,
                        rnd: D,
                        platform: n.platform,
                        sdk_version: p,
                        sdk_lib: "js",
                        province: D,
                        city: D,
                        timezone: P,
                        tz_offset: q,
                        tz_name: D,
                        sim_region: D,
                        carrier: D,
                        resolution: n.screen_width + "x" + n.screen_height,
                        browser: n.browser,
                        browser_version: n.browser_version,
                        referrer: n.referrer,
                        referrer_host: n.referrer_host,
                        width: n.screen_width,
                        height: n.screen_height,
                        screen_width: n.screen_width,
                        screen_height: n.screen_height,
                        utm_term: n.utm_term,
                        utm_content: n.utm_content,
                        utm_source: n.utm_source,
                        utm_medium: n.utm_medium,
                        utm_campaign: n.utm_campaign,
                        tracer_data: JSON.stringify(n.tracer_data),
                        custom: {}
                    }
                },
                this.evtParams = {},
                this.reportErrorCallback = function() {}
        }
        return e.prototype.set = function(e, i) {
            var n = this;
            if (null == i && (this.delete(e),
                i = void 0),
            "evtParams" === e || "_staging_flag" === e) {
                var r;
                r = "evtParams" === e ? i : {
                    _staging_flag: Number(i)
                };
                var o = t({}, r);
                Object.keys(o).forEach(function(e) {
                    n.evtParams[e] = o[e]
                })
            } else if ("reportErrorCallback" === e && "function" == typeof i)
                this.reportErrorCallback = i;
            else {
                var s = "";
                if (e.indexOf(".") > -1) {
                    var a = e.split(".");
                    s = a[0],
                        e = a[1]
                }
                if ("user_unique_id" === e) {
                    if (!i)
                        return;
                    if (-1 !== ["0", "Null", "None", "", "undefined"].indexOf(i))
                        return
                }
                if ("os_version" === e && (e = "" + i),
                "web_id" === e) {
                    if (!i)
                        return;
                    (!this.envInfo.user.user_unique_id || this.envInfo.user.user_unique_id && this.envInfo.user.user_unique_id === this.envInfo.user.web_id) && (this.envInfo.user.user_unique_id = i)
                }
                s ? "user" === s || "header" === s ? this.envInfo[s][e] = i : this.envInfo.header.custom[e] = i : this.envInfo.user.hasOwnProperty(e) ? ["user_type", "ip_addr_id"].indexOf(e) > -1 ? this.envInfo.user[e] = i ? Number(i) : i : ["user_id", "web_id", "user_unique_id", "ssid"].indexOf(e) > -1 ? this.envInfo.user[e] = i ? String(i) : i : ["user_is_auth", "user_is_login"].indexOf(e) > -1 ? this.envInfo.user[e] = Boolean(i) : "device_id" === e && (this.envInfo.user[e] = i) : this.envInfo.header.hasOwnProperty(e) ? this.envInfo.header[e] = i : this.envInfo.header.custom[e] = i
            }
        }
            ,
            e.prototype.get = function(e) {
                try {
                    return e ? "evtParams" === e ? this.evtParams : "reportErrorCallback" === e ? this[e] : JSON.parse(JSON.stringify(this.envInfo[e])) : JSON.parse(JSON.stringify(this.envInfo))
                } catch (e) {
                    console.log("get config stringify error ")
                }
            }
            ,
            e.prototype.setStore = function(e) {
                try {
                    var t = this.storage.getItem(this.configKey);
                    if (Object.keys(e).length) {
                        var i = Object.assign(e, t);
                        this.storage.setItem(this.configKey, i)
                    }
                } catch (e) {}
            }
            ,
            e.prototype.getStore = function() {
                try {
                    var e = this.storage.getItem(this.configKey);
                    return Object.keys(e).length ? e : null
                } catch (e) {
                    return null
                }
            }
            ,
            e.prototype.delete = function(e) {
                try {
                    var t = this.storage.getItem(this.configKey);
                    t && t.hasOwnProperty(e) && (delete t[e],
                        this.storage.setItem(this.configKey, t))
                } catch (e) {}
            }
            ,
            e
    }()
        , J = function() {
        function e(e, t) {
            this.isLog = t || !1,
                this.name = e || ""
        }
        var t = e.prototype;
        return t.info = function(e) {
            this.isLog && console.log("[" + this.name + "] " + e)
        }
            ,
            t.warn = function(e) {
                this.isLog && console.warn("[" + this.name + "] " + e)
            }
            ,
            t.error = function(e) {
                this.isLog && console.error("[" + this.name + "] " + e)
            }
            ,
            t.throw = function(e) {
                throw this.error(this.name),
                    new Error(e)
            }
            ,
            e
    }()
        , L = function() {
        function e() {
            this._hooks = {}
        }
        return e.prototype.on = function(e, t) {
            e && t && "function" == typeof t && (this._hooks[e] || (this._hooks[e] = []),
                this._hooks[e].push(t))
        }
            ,
            e.prototype.once = function(e, t) {
                var i = this;
                if (e && t && "function" == typeof t) {
                    this.on(e, function n(r) {
                        t(r),
                            i.off(e, n)
                    })
                }
            }
            ,
            e.prototype.off = function(e, t) {
                if (e && this._hooks[e] && this._hooks[e].length)
                    if (t) {
                        var i = this._hooks[e].indexOf(t);
                        -1 !== i && this._hooks[e].splice(i, 1)
                    } else
                        this._hooks[e] = []
            }
            ,
            e.prototype.emit = function(e, t) {
                e && this._hooks[e] && this._hooks[e].length && n(this._hooks[e]).forEach(function(e) {
                    try {
                        e(t)
                    } catch (e) {}
                })
            }
            ,
            e
    }()
        , R = function() {
        return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
            var t = 16 * Math.random() | 0;
            return ("x" === e ? t : 3 & t | 8).toString(16)
        })
    }
        , M = function() {
        function e(e, t) {
            this.storage = new h(!1,"session"),
                this.sessionKey = m(e),
                this.expireTime = t.expireTime || 18e5,
                this.disableSession = t.disable_session,
            this.disableSession || this._setSessionId()
        }
        return e.prototype._updateSessionId = function() {
            var e = this.storage.getItem(this.sessionKey);
            if (e && e.sessionId) {
                var t = e.timestamp;
                Date.now() - t > this.expireTime ? e = {
                    sessionId: R(),
                    timestamp: Date.now()
                } : e.timestamp = Date.now(),
                    this.storage.setItem(this.sessionKey, e),
                    this._resetExpTime()
            }
        }
            ,
            e.prototype._setSessionId = function() {
                var e = this
                    , t = this.storage.getItem(this.sessionKey);
                t && t.sessionId ? t.timestamp = Date.now() : t = {
                    sessionId: R(),
                    timestamp: Date.now()
                },
                    this.storage.setItem(this.sessionKey, t),
                    this.sessionExp = setInterval(function() {
                        e._checkEXp()
                    }, this.expireTime)
            }
            ,
            e.prototype._getSessionId = function() {
                var e = this.storage.getItem(this.sessionKey);
                return this.disableSession ? "" : e && e.sessionId ? e.sessionId : ""
            }
            ,
            e.prototype._resetExpTime = function() {
                var e = this;
                this.sessionExp && (clearInterval(this.sessionExp),
                    this.sessionExp = setInterval(function() {
                        e._checkEXp()
                    }, this.expireTime))
            }
            ,
            e.prototype._resetSessionId = function() {
                var e = {
                    sessionId: R(),
                    timestamp: Date.now()
                };
                this.storage.setItem(this.sessionKey, e)
            }
            ,
            e.prototype._checkEXp = function() {
                var e = this.storage.getItem(this.sessionKey);
                e && e.sessionId && (Date.now() - e.timestamp + 30 >= this.expireTime && (e = {
                    sessionId: R(),
                    timestamp: Date.now()
                },
                    this.storage.setItem(this.sessionKey, e)))
            }
            ,
            e
    }()
        , K = {
        pv: ["predefine_pageview"],
        sdk: ["_be_active", "predefine_page_alive", "predefine_page_close", "__profile_set", "__profile_set_once", "__profile_increment", "__profile_unset", "__profile_append"],
        autotrack: ["bav2b_click", "bav2b_page", "bav2b_beat", "bav2b_page_statistics", "__bav_click", "__bav_page", "__bav_beat", "__bav_page_statistics"]
    }
        , W = function() {
        function e(e, t, i, n) {
            this.count = {
                pv: 0,
                sdk: 0,
                autotrack: 0,
                log: 0
            },
                this.limit = {
                    pv: 1,
                    sdk: 10,
                    autotrack: 10,
                    log: 3
                },
                this.errorCode = {
                    f_net: 0,
                    f_data: 0
                },
                this.errorInfo = {
                    pv: {
                        f_net: 0,
                        f_data: 0
                    },
                    sdk: {
                        f_net: 0,
                        f_data: 0
                    },
                    autotrack: {
                        f_net: 0,
                        f_data: 0
                    },
                    log: {
                        f_net: 0,
                        f_data: 0
                    }
                },
                this.collect = e,
                this.disable_tracer = t.disable_tracer || t.channel_domain,
                this.ready = !(!t.app_id || this.disable_tracer),
                this.appid = t.app_id,
                this.process = i,
                this.event = n;
            var r = t.channel_domain || T(u[t.channel]);
            this.reportUrl = t.report_url ? t.report_url : "" + r + d,
                this.listener()
        }
        return e.prototype.addCount = function(e) {
            try {
                if (!this.ready)
                    return;
                if (this.count[e]++,
                this.count[e] >= this.limit[e]) {
                    var t = [];
                    for (var i in t = n(t, this.processTracer(this.count[e], e, "net")),
                        this.errorInfo[e])
                        this.errorInfo[i] && (t = n(t, this.processTracer(this.errorInfo[e][i], e, i)));
                    t.length && this.sendTracer(t, !0, e, !1)
                }
            } catch (e) {}
        }
            ,
            e.prototype.addErrorCount = function(e, t, i, n) {
                var r = this;
                try {
                    if (!this.ready)
                        return;
                    if (e && e.length) {
                        var o = e[0].events;
                        o && o.length && ("f_data" === t ? (n && n.hasOwnProperty("sc") ? this.errorInfo.log.f_data = o.length - n.sc : this.errorInfo.log.f_data = o.length,
                            this.errorCode.f_data = i) : o.forEach(function(e) {
                            var t = "log";
                            for (var n in K)
                                if (-1 !== K[n].indexOf(e.event)) {
                                    t = n;
                                    break
                                }
                            r.errorInfo[t].f_net++,
                                r.errorCode.f_net = i
                        }))
                    }
                } catch (e) {}
            }
            ,
            e.prototype.clearCount = function(e) {
                try {
                    e ? (this.count[e] = 0,
                        this.errorInfo[e] = {
                            f_net: 0,
                            f_data: 0
                        }) : (this.count = {
                        pv: 0,
                        sdk: 0,
                        autotrack: 0,
                        log: 0
                    },
                        this.errorInfo = {
                            pv: {
                                f_net: 0,
                                f_data: 0
                            },
                            sdk: {
                                f_net: 0,
                                f_data: 0
                            },
                            autotrack: {
                                f_net: 0,
                                f_data: 0
                            },
                            log: {
                                f_net: 0,
                                f_data: 0
                            }
                        })
                } catch (e) {}
            }
            ,
            e.prototype.sendTracer = function(e, t, i, n) {
                try {
                    if (!this.ready)
                        return;
                    if (this.collect.staging)
                        return;
                    var r = this.event._mergeEvents(e);
                    n && window.navigator.sendBeacon ? window.navigator.sendBeacon(this.reportUrl, JSON.stringify(r)) : O(this.reportUrl, 3e5, r, ""),
                        t ? this.clearCount(i) : this.clearCount()
                } catch (e) {}
            }
            ,
            e.prototype.processTracer = function(e, t, i) {
                try {
                    var n = {
                        count: e,
                        state: i,
                        key: t,
                        params_for_special: "applog_trace",
                        aid: this.appid,
                        platform: "web",
                        _staging_flag: 1,
                        sdk_version: p
                    };
                    "f_net" !== i && "f_data" !== i || (n.errorCode = this.errorCode[i]);
                    var r = [];
                    if (r.push(this.process("applog_trace", n, !0)),
                    r && r.length)
                        return delete r[0].is_bav,
                            r
                } catch (e) {}
            }
            ,
            e.prototype.listener = function() {
                var e = this;
                this.ready && (document.addEventListener("visibilitychange", function() {
                    e.leavePage()
                }),
                    A(function() {
                        e.leavePage()
                    }))
            }
            ,
            e.prototype.leavePage = function() {
                if (this.ready)
                    try {
                        var e = [];
                        for (var t in this.count)
                            if (this.count[t]) {
                                var i = this.errorInfo[t];
                                for (var r in e = n(e, this.processTracer(this.count[t], t, "net")),
                                    i)
                                    i[r] && (e = n(e, this.processTracer(i[r], t, r)))
                            }
                        e && e.length && this.sendTracer(e, !1, "", !0)
                    } catch (e) {}
            }
            ,
            e
    }()
        , H = function() {
        function e(e) {
            this.logger = e
        }
        var t = e.prototype;
        return t.bridgeInject = function() {
            try {
                return AppLogBridge ? (this.logger.info("AppLogBridge is injected"),
                    !0) : (this.logger.info("AppLogBridge is not inject"),
                    !1)
            } catch (e) {
                return this.logger.info("AppLogBridge is not inject"),
                    !1
            }
        }
            ,
            t.hasStarted = function(e) {
                var t = this;
                try {
                    this.bridgeInject() ? AppLogBridge.hasStarted(function(i) {
                        t.logger.info("AppLogBridge is started? : " + i),
                            e(i)
                    }) : e(0)
                } catch (t) {
                    this.logger.info("AppLogBridge, error:" + JSON.stringify(t.stack)),
                        e(0)
                }
            }
            ,
            t.setUserUniqueId = function(e) {
                try {
                    AppLogBridge.setUserUniqueId(e)
                } catch (e) {
                    this.logger.error("setUserUniqueId error")
                }
            }
            ,
            t.addHeaderInfo = function(e, t) {
                try {
                    AppLogBridge.addHeaderInfo(e, t)
                } catch (e) {
                    this.logger.error("addHeaderInfo error")
                }
            }
            ,
            t.setHeaderInfo = function(e) {
                try {
                    AppLogBridge.setHeaderInfo(JSON.stringify(e))
                } catch (e) {
                    this.logger.error("setHeaderInfo error")
                }
            }
            ,
            t.removeHeaderInfo = function(e) {
                try {
                    AppLogBridge.removeHeaderInfo(e)
                } catch (e) {
                    this.logger.error("removeHeaderInfo error")
                }
            }
            ,
            t.onEventV3 = function(e, t) {
                try {
                    AppLogBridge.onEventV3(e, t)
                } catch (e) {
                    this.logger.error("onEventV3 error")
                }
            }
            ,
            t.profileSet = function(e) {
                try {
                    AppLogBridge.profileSet(e)
                } catch (e) {
                    this.logger.error("profileSet error")
                }
            }
            ,
            t.profileSetOnce = function(e) {
                try {
                    AppLogBridge.profileSetOnce(e)
                } catch (e) {
                    this.logger.error("profileSetOnce error")
                }
            }
            ,
            t.profileIncrement = function(e) {
                try {
                    AppLogBridge.profileIncrement(e)
                } catch (e) {
                    this.logger.error("profileIncrement error")
                }
            }
            ,
            t.profileUnset = function(e) {
                try {
                    AppLogBridge.profileUnset(e)
                } catch (e) {
                    this.logger.error("profileUnset error")
                }
            }
            ,
            t.profileAppend = function(e) {
                try {
                    AppLogBridge.profileAppend(e)
                } catch (e) {
                    this.logger.error("profileAppend error")
                }
            }
            ,
            e
    }()
        , Q = function() {
        function e(e, t, i) {
            this.processEvent = e,
                this._event = t,
                this.cache = {},
                this.duration = 6e4,
                this.profileReady = !1,
                this.reportUrl = (i.channel_domain || T(u[i.channel])) + "/profile/list"
        }
        return e.prototype.start = function() {
            this.profileReady = !0
        }
            ,
            e.prototype.report = function(e, t) {
                void 0 === t && (t = {});
                try {
                    var i = [];
                    i.push(this.processEvent(e, t));
                    var n = this._event._mergeEvents(i);
                    O(this.reportUrl, 3e5, n)
                } catch (e) {}
            }
            ,
            e.prototype.setProfile = function(e) {
                var i = this._formatParams(e);
                i && Object.keys(i).length && (this._pushCache(i),
                    this.report("__profile_set", t({}, i, {
                        profile: !0
                    })))
            }
            ,
            e.prototype.setOnceProfile = function(e) {
                var i = this._formatParams(e, !0);
                i && Object.keys(i).length && (this._pushCache(i),
                    this.report("__profile_set_once", t({}, i, {
                        profile: !0
                    })))
            }
            ,
            e.prototype.incrementProfile = function(e) {
                e ? this.report("__profile_increment", t({}, e, {
                    profile: !0
                })) : console.warn("please check the params, must be object!!!")
            }
            ,
            e.prototype.unsetProfile = function(e) {
                if (e) {
                    var i = {};
                    i[e] = "1",
                        this.report("__profile_unset", t({}, i, {
                            profile: !0
                        }))
                } else
                    console.warn("please check the key, must be string!!!")
            }
            ,
            e.prototype.appendProfile = function(e) {
                if (e) {
                    var i = {};
                    for (var n in e)
                        "string" == typeof e[n] || "Array" === Object.prototype.toString.call(e[n]).slice(8, -1) ? i[n] = e[n] : console.warn("please check the value of param: " + n + ", must be string or array !!!");
                    Object.keys(i).length && this.report("__profile_append", t({}, i, {
                        profile: !0
                    }))
                } else
                    console.warn("please check the params, must be object!!!")
            }
            ,
            e.prototype._pushCache = function(e) {
                var t = this;
                Object.keys(e).forEach(function(i) {
                    t.cache[i] = {
                        val: t._clone(e[i]),
                        timestamp: Date.now()
                    }
                })
            }
            ,
            e.prototype._formatParams = function(e, t) {
                var i = this;
                void 0 === t && (t = !1);
                try {
                    if (!e || "[object Object]" !== Object.prototype.toString.call(e))
                        return void console.warn("please check the params type, must be object !!!");
                    var n = {};
                    for (var r in e)
                        "string" == typeof e[r] || "number" == typeof e[r] || "Array" === Object.prototype.toString.call(e[r]).slice(8, -1) ? n[r] = e[r] : console.warn("please check the value of params:" + r + ", must be string,number,Array !!!");
                    var o = Object.keys(n);
                    if (!o.length)
                        return;
                    var s = Date.now();
                    return o.filter(function(n) {
                        var r = i.cache[n];
                        return t ? !r : !(r && i._compare(r.val, e[n]) && s - r.timestamp < i.duration)
                    }).reduce(function(e, t) {
                        return e[t] = n[t],
                            e
                    }, {})
                } catch (e) {}
            }
            ,
            e.prototype._compare = function(e, t) {
                try {
                    return JSON.stringify(e) === JSON.stringify(t)
                } catch (e) {
                    return !1
                }
            }
            ,
            e.prototype._clone = function(e) {
                try {
                    return JSON.parse(JSON.stringify(e))
                } catch (t) {
                    return e
                }
            }
            ,
            e.prototype._unReady = function() {
                console.warn("sdk is not ready, please use this api after start")
            }
            ,
            e
    }()
        , F = "undefined" != typeof window ? (window.TeaPluginObject || (window.TeaPluginObject = {}),
        window.TeaPluginObject) : null
        , X = function() {
        function e(e, t, i, n) {
            this._plugin = {},
                this.config = e,
                this.event = t,
                this.beconEvent = i,
                this.hook = n,
                this.channel = e.channel || "cn"
        }
        return e.prototype.loadExtend = function(e) {
            var t = this;
            try {
                e && e.length && e.forEach(function(e) {
                    if (z.hasOwnProperty(e)) {
                        var i = T(z[e].src[t.channel]) + "?query=" + Date.now();
                        t.loadPlugin(e, i, function() {
                            try {
                                var i = z[e].object;
                                F[i] && F[i](t.config, t.event.bind(t), t.beconEvent.bind(t), t.hook)
                            } catch (e) {}
                            console.log("load " + e + " success")
                        }, function() {
                            console.log("load " + e + " error")
                        })
                    }
                })
            } catch (e) {}
        }
            ,
            e.prototype.loadPlugin = function(e, t, i, n) {
                var r = this;
                try {
                    var o = document.createElement("script");
                    o.src = t,
                    this._plugin[e] || (this._plugin[e] = []),
                        this._plugin[e].push(i),
                        o.onerror = function() {
                            n(t)
                        }
                        ,
                        o.onload = function() {
                            r._plugin[e].forEach(function(e) {
                                e()
                            })
                        }
                        ,
                        document.getElementsByTagName("head")[0].appendChild(o)
                } catch (e) {}
            }
            ,
            e
    }();
    function $(e, t, i) {
        return {
            title: t || document.title || location.pathname,
            url: i || location.href,
            url_path: e || location.pathname
        }
    }
    function G() {
        return Date.now()
    }
    function Z() {
        var e = v();
        return window[e] ? window[e].l : G()
    }
    function Y() {
        var e = !1;
        return ["hidden", "msHidden", "webkitHidden"].forEach(function(t) {
            void 0 !== document[t] && (e = !0)
        }),
            e
    }
    var ee = function() {
        function e(e, i) {
            var n = this;
            this._sendEvent = function(e) {
                void 0 === e && (e = !1);
                var i = e ? n.options.aliveDTime : G() - n.sessionStartTime;
                i < 0 || G() - n.pageStartTime > n.options.maxDuration || (n.event("predefine_page_alive", t({}, $(n.url_path, n.title, n.url), {
                    duration: i,
                    is_support_visibility_change: n.options.sup_vis_change ? 1 : 0,
                    startTime: n.sessionStartTime
                }), "sdk"),
                    n.sessionStartTime = G())
            }
                ,
                this._setUpTimer = function() {
                    return n.timerHandler && clearInterval(n.timerHandler),
                        setInterval(function() {
                            G() - n.sessionStartTime > n.options.aliveDTime && n._sendEvent(!0)
                        }, 1e3)
                }
                ,
                this._visibilitychange = function() {
                    "hidden" === document.visibilityState ? n.timerHandler && (clearInterval(n.timerHandler),
                        n._sendEvent()) : "visible" === document.visibilityState && (n.sessionStartTime = G(),
                        n.timerHandler = n._setUpTimer())
                }
                ,
                this._beforeunload = function() {
                    document.hidden || n._sendEvent()
                }
                ,
                this._wtest = function() {
                    document.getElementById("wtest").innerHTML = "visibilitychange"
                }
                ,
                this._dtest = function() {
                    document.getElementById("dtest").innerHTML = "dvisibilitychange"
                }
                ,
                this.event = e,
                this.config = i,
                this.isSupVisChange = Y(),
                this.options = {
                    maxDuration: 432e5,
                    aliveDTime: 6e4,
                    sup_vis_change: Y()
                },
                this.pageStartTime = Z(),
                this.sessionStartTime = this.pageStartTime,
                this.timerHandler = null,
                this.disableCallback = function() {}
        }
        return e.prototype.enable = function(e, t, i) {
            this.url_path = e,
                this.url = i,
                this.title = t,
                this.disableCallback = this._enablePageAlive()
        }
            ,
            e.prototype.disable = function() {
                this.disableCallback(),
                    this.pageStartTime = Date.now()
            }
            ,
            e.prototype._enablePageAlive = function() {
                var e = this;
                return this.timerHandler = this._setUpTimer(),
                    document.addEventListener("visibilitychange", this._visibilitychange),
                    A(this._beforeunload),
                    function() {
                        e._beforeunload(),
                            document.removeEventListener("visibilitychange", e._visibilitychange),
                            window.removeEventListener("beforeunload", e._beforeunload),
                            window.removeEventListener("pagehide", e._beforeunload)
                    }
            }
            ,
            e
    }()
        , te = function() {
        function e(e, t) {
            var i = this;
            this._visibilitychange = function() {
                "hidden" === document.visibilityState ? i.activeEndTime = G() : "visible" === document.visibilityState && (i.activeEndTime && (i.totalTime += i.activeEndTime - i.activeStartTime,
                    i.activeTimes += 1),
                    i.activeEndTime = void 0,
                    i.activeStartTime = G())
            }
                ,
                this._beforeunload = function() {
                    if (i.totalTime += (i.activeEndTime || G()) - i.activeStartTime,
                        i.config.autotrack) {
                        try {
                            window.sessionStorage.setItem("_tea_cache_duration", JSON.stringify({
                                duration: i.totalTime,
                                page_title: document.title || location.pathname
                            }))
                        } catch (e) {}
                    }
                    i._sendEventPageClose()
                }
                ,
                this.event = e,
                this.config = t,
                this.isSupVisChange = Y(),
                this.options = {
                    sup_vis_change: this.isSupVisChange
                },
                this.maxDuration = t.maxDuration || 864e5,
                this.disableCallback = function() {}
                ,
                this.pageStartTime = Z(),
                this._resetData()
        }
        return e.prototype.enable = function(e, t, i) {
            this.url_path = e,
                this.url = i,
                this.title = t,
                this.disableCallback = this._enablePageClose()
        }
            ,
            e.prototype.disable = function() {
                this.disableCallback()
            }
            ,
            e.prototype._resetData = function() {
                this.activeStartTime = void 0 === this.activeStartTime ? Z() : Date.now(),
                    this.activeEndTime = void 0,
                    this.activeTimes = 1,
                    this.totalTime = 0
            }
            ,
            e.prototype._sendEventPageClose = function() {
                var e = G() - this.pageStartTime;
                this.totalTime < 0 || e < 0 || this.totalTime >= this.maxDuration || (this.event("predefine_page_close", t({}, $(this.url_path, this.title, this.url), {
                    active_times: this.activeTimes,
                    duration: this.totalTime,
                    total_duration: e,
                    is_support_visibility_change: this.options.sup_vis_change ? 1 : 0
                }), "sdk"),
                    this.pageStartTime = Date.now(),
                    this._resetData())
            }
            ,
            e.prototype._enablePageClose = function() {
                var e = this;
                return document.addEventListener("visibilitychange", this._visibilitychange),
                    A(this._beforeunload),
                    function() {
                        e._beforeunload(),
                            document.removeEventListener("visibilitychange", e._visibilitychange),
                            window.removeEventListener("beforeunload", e._beforeunload),
                            window.removeEventListener("pagehide", e._beforeunload)
                    }
            }
            ,
            e
    }()
        , ie = function() {
        function e(e, t) {
            this.pageAlive = new ee(e,t),
                this.pageClose = new te(e,t),
                this.title = document.title || location.pathname,
                this.url = location.href,
                this.url_path = location.pathname,
                this._enable(this.url_path, this.title, this.url)
        }
        return e.prototype._enable = function(e, t, i) {
            this.pageAlive.enable(e, t, i),
                this.pageClose.enable(e, t, i)
        }
            ,
            e.prototype._disable = function() {
                this.pageAlive.disable(),
                    this.pageClose.disable()
            }
            ,
            e.prototype.reset = function(e, t, i) {
                this._disable(),
                    this._enable(e, t, i)
            }
            ,
            e
    }();
    var ne = function() {
        function e(e) {
            var t = this;
            this._setInterval = function() {
                t._clearIntervalFunc = function(e, t) {
                    void 0 === e && (e = function() {}
                    ),
                    void 0 === t && (t = 1e3);
                    var i, n = Date.now() + t;
                    return i = window.setTimeout(function r() {
                        var o = Date.now() - n;
                        e(),
                            n += t,
                            i = window.setTimeout(r, Math.max(0, t - o))
                    }, t),
                        function() {
                            window.clearTimeout(i)
                        }
                }(function() {
                    t._isSessionhasEvent && t._endCurrentSession()
                }, t.sessionInterval)
            }
                ,
                this._clearInterval = function() {
                    t._clearIntervalFunc && t._clearIntervalFunc()
                }
                ,
                this.sessionInterval = 6e4,
                this._eventSenderFunc = e,
                this._startTime = 0,
                this._lastTime = 0,
                this._setInterval()
        }
        return e.prototype._endCurrentSession = function() {
            this._eventSenderFunc("_be_active", {
                start_time: this._startTime,
                end_time: this._lastTime,
                url: window.location.href,
                referrer: window.document.referrer
            }, "sdk"),
                this._isSessionhasEvent = !1,
                this._startTime = 0
        }
            ,
            e.prototype.process = function() {
                this._isSessionhasEvent || (this._isSessionhasEvent = !0,
                    this._startTime = +new Date);
                var e = this._lastTime || +new Date;
                this._lastTime = +new Date,
                this._lastTime - e > this.sessionInterval && (this._clearInterval(),
                    this._endCurrentSession(),
                    this._setInterval())
            }
            ,
            e
    }();
    var re = function() {
        function e(e) {
            this.config = e
        }
        return e.prototype.sdkOnload = function(e, t, i) {
            if (!this.sdkReady) {
                this.sdkReady = !0;
                try {
                    if (0 === i.length)
                        return;
                    var n = i[0]
                        , r = n.header
                        , o = n.user
                        , s = r.app_id
                        , a = r.app_name
                        , c = r.sdk_version
                        , h = o.web_id
                        , u = {
                        events: [{
                            event: "onload",
                            params: JSON.stringify({
                                app_key: e,
                                app_id: s,
                                app_name: a || "",
                                sdk_version: c,
                                sdk_type: "script",
                                sdk_config: this.config
                            }),
                            local_time_ms: Date.now()
                        }],
                        user: {
                            user_unique_id: h
                        },
                        header: {}
                    };
                    setTimeout(function() {
                        O(t, 3e4, [u], "566f58151b0ed37e")
                    }, 16)
                } catch (e) {}
            }
        }
            ,
            e.prototype.sdkError = function(e, t, i, n) {
                try {
                    var r = i[0]
                        , o = r.user
                        , s = r.header
                        , a = [];
                    i.forEach(function(e) {
                        e.events.forEach(function(e) {
                            a.push(e)
                        })
                    });
                    var c = {
                        events: a.map(function(t) {
                            return {
                                event: "on_error",
                                params: JSON.stringify({
                                    error_code: n,
                                    app_key: e,
                                    app_id: s.app_id,
                                    app_name: s.app_name || "",
                                    error_event: t.event,
                                    sdk_version: s.sdk_version,
                                    local_time_ms: t.local_time_ms,
                                    tea_event_index: Date.now(),
                                    params: t.params,
                                    header: JSON.stringify(s),
                                    user: JSON.stringify(o)
                                }),
                                local_time_ms: Date.now()
                            }
                        }),
                        user: {
                            user_unique_id: o.user_unique_id
                        },
                        header: {}
                    };
                    setTimeout(function() {
                        O(t, 3e4, [c], "566f58151b0ed37e")
                    }, 16)
                } catch (e) {}
            }
            ,
            e
    }()
        , oe = function() {
        try {
            var e = JSON.parse(atob(window.name));
            return e && e.href ? e.href : ""
        } catch (e) {
            return ""
        }
    };
    var se = new h(!1)
        , ae = function(e) {
        return "__tea_sdk_ab_version_" + e
    }
        , ce = function(e) {
        var t = {
            ab_version: [],
            ab_ext_version: [],
            ab_version_multilink: [],
            data: null,
            timestamp: +new Date
        };
        try {
            t = se.getItem(ae(e)) || t
        } catch (e) {}
        return t
    }
        , he = function(e, i) {
        try {
            var n = ce(e);
            se.setItem(ae(e), t({}, n, i))
        } catch (e) {}
    }
        , ue = function(e, t, i) {
        void 0 === i && (i = !1);
        var n = i ? {
            ab_ext_version: t,
            timestamp: Date.now()
        } : {
            ab_version: t,
            timestamp: Date.now()
        };
        he(e, n)
    }
        , le = {}
        , de = []
        , pe = function(e) {
        e.length && e.forEach(function(e) {
            de.push(e)
        })
    };
    function fe(e, t, i, n) {
        var r = e && e.source || window.opener || window.parent
            , o = e && e.origin || n || "*"
            , s = {
            type: t,
            payload: i
        };
        r.postMessage(JSON.stringify(s), o)
    }
    function _e(e, t) {
        le[e] = le[e] || [],
            le[e].push(t)
    }
    function ge(e) {
        if (de.some(function(e) {
            return "*" === e
        }) || de.some(function(t) {
            return e.origin.indexOf(t) > -1
        })) {
            var t = e.data;
            if ("string" == typeof e.data)
                try {
                    t = JSON.parse(e.data)
                } catch (e) {
                    t = void 0
                }
            if (!t)
                return;
            var i = t.type
                , n = t.payload;
            le[i] && le[i].forEach(function(t) {
                "function" == typeof t && t(e, n)
            })
        }
    }
    function me(e, t, i) {
        var n = document.createElement("script");
        n.src = e,
            n.onerror = function() {
                i(e)
            }
            ,
            n.onload = function() {
                t()
            }
            ,
            document.getElementsByTagName("head")[0].appendChild(n)
    }
    window.TEAVisualEditor = window.TEAVisualEditor || {};
    var ve = ""
        , ze = !1;
    function ye(e) {
        var t = e.event
            , i = e.editorUrl;
        e.collectInstance,
            e.fromSession;
        ze || (ze = !0,
            me(i, function() {
                fe(t, "abEditorScriptloadSuccess")
            }, function() {
                t && fe(t, "abEditorScriptloadError"),
                    ze = !1
            }))
    }
    function be(e, t, i, n) {
        pe(["*"]);
        var r, o, s, a = "";
        r = n,
            o = p,
            (window.opener || window.parent).postMessage("[tea-sdk]ready", "*"),
            (window.opener || window.parent).postMessage({
                type: "tea:sdk:info",
                config: r,
                version: o
            }, "*"),
            window.addEventListener("message", ge, !1);
        var c = "";
        try {
            var h = window.performance.getEntriesByType("resource");
            if (h && h.length && (h.forEach(function(e) {
                "script" === e.initiatorType && e.name && -1 !== e.name.indexOf("collect") && (c = e.name)
            }),
            c || document.currentScript && (c = document.currentScript.src),
            c && (s = c.split("/")) && s.length)) {
                a = "https:/";
                for (var u = 2; u < s.length && u !== s.length - 1; u++)
                    a = a + "/" + s[u];
                a += "/visual-ab-core"
            }
        } catch (e) {}
        _e("tea:openVisualABEditor", function(n) {
            var r = n.data;
            if ("string" == typeof n.data)
                try {
                    r = JSON.parse(n.data)
                } catch (e) {
                    r = void 0
                }
            if (r) {
                var o = r.lang;
                if (r.appId !== t)
                    return fe(n, "appIdError"),
                        void console.error("abtest appid is not belong the page appid please check");
                var s = r.version;
                if (s)
                    ve = a ? "" + a + (s ? "." + s : ".1.0.1") + ".js?query=" + Date.now() : T(w) + "?query=" + Date.now();
                else
                    ve = T(w) + "?query=" + Date.now();
                window.TEAVisualEditor.lang = o,
                i && (window.TEAVisualEditor.__ab_domin = i),
                    ye({
                        event: n,
                        editorUrl: ve,
                        collectInstance: e
                    })
            }
        })
    }
    var ke, we, Se = function(e, t, i, n) {
        window.TEAVisualEditor.appId = t,
            _e("tea:openTesterEventInspector", function(t) {
                var i = t.data;
                if ("string" == typeof t.data)
                    try {
                        i = JSON.parse(t.data)
                    } catch (e) {
                        i = void 0
                    }
                if (i) {
                    var n = i.referrer
                        , r = i.lang
                        , o = i.appId;
                    window.TEAVisualEditor.__editor_ajax_domain = n || "",
                        window.TEAVisualEditor.__ab_appId = o || "",
                        window.TEAVisualEditor.lang = r || "",
                        ye({
                            event: t,
                            editorUrl: T("1fz22z22z1nz21z4mz4bz4bz1jz1dz4fz49z1bz18z22z18z4az24z1mz1jz1az1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz1bz18z22z18z49z21z22z18z22z1gz1az4bz22z1cz21z22z1cz20z4bz21z1bz1iz4bz22z1cz21z22z1cz20z49z1cz24z1cz1lz22z49z1gz1lz21z1nz1cz1az22z1mz20z4az1hz21") + "?query=" + Date.now(),
                            collectInstance: e
                        })
                }
            })
    }, Ie = T("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz24z1gz21z23z18z1jz49z18z19z49z1jz1mz18z1bz1cz20z4az1hz21") + "?query=" + Date.now();
    !function(e) {
        e[e.No = 0] = "No",
            e[e.Ing = 1] = "Ing",
            e[e.Complete = 2] = "Complete"
    }(ke || (ke = {})),
        function(e) {
            e[e.Var = 0] = "Var",
                e[e.All = 1] = "All"
        }(we || (we = {}));
    var Oe, xe = function() {
        function e(e, t, i) {
            this.appId = 0,
                this.user = {},
                this.header = {},
                this.domain = "",
                this.protocal = location.protocol,
                this.fetchStatus = ke.No,
                this.callbacks = [],
                this.data = null,
                this.versions = [],
                this.extVersions = [],
                this.mulilinkVersions = [],
                this.collector = e;
            var n = this.collector._initConfig
                , r = n.app_id
                , o = n.channel
                , s = n.enable_multilink
                , a = n.multilink_timeout_ms
                , c = n.ab_channel_domain
                , h = n.channel_domain
                , l = n.enable_ab_visual
                , p = n.ab_timeout;
            if (this.appId = r,
                this.timeout = p || 3e3,
                this.domain = c || T(y[o || "cn"]),
                this.domain) {
                this.needOverlay = s || l || !1,
                    this.enable_ab_visual = l,
                    this.enable_multilink = s,
                    this.closeTime = a || 500,
                    this.Hook = t;
                var f = h || T(u[o]);
                if (this.reportUrl = "" + f + d,
                    l) {
                    be(e, this.appId, c || "", i);
                    var _ = oe();
                    if (_ && (-1 !== _.indexOf("datatester") || -1 !== _.indexOf("visual-editor")))
                        return console.log("edit mode"),
                            void this.collector.destroy()
                }
                s && Se(e, this.appId, c || "", i),
                    this._check(),
                    this.wait()
            } else
                console.warn("sorry you env is not support abtest yet~")
        }
        return e.prototype.init = function(e, i) {
            if (!this.collector.destroyInstance)
                if (this.domain) {
                    this.config = e;
                    var n = e.user
                        , r = e.header
                        , o = function(e, t) {
                        var i = {};
                        for (var n in e)
                            Object.prototype.hasOwnProperty.call(e, n) && t.indexOf(n) < 0 && (i[n] = e[n]);
                        if (null != e && "function" == typeof Object.getOwnPropertySymbols) {
                            var r = 0;
                            for (n = Object.getOwnPropertySymbols(e); r < n.length; r++)
                                t.indexOf(n[r]) < 0 && (i[n[r]] = e[n[r]])
                        }
                        return i
                    }(r, []);
                    this.user = t({}, n),
                        this.header = t({}, r),
                        this._fetch(t({}, o), {
                            success: i,
                            fail: i
                        })
                } else
                    console.warn("sorry you env is not support abtest yet~")
        }
            ,
            e.prototype._check = function() {
                var e = this
                    , t = function(e) {
                    var t = ce(e)
                        , i = t.timestamp;
                    if (Date.now() - i >= 2592e6) {
                        try {
                            se.removeItem("__tea_sdk_ab_version")
                        } catch (e) {}
                        return null
                    }
                    return t
                }(this.appId);
                if (t) {
                    var i = t.ab_version
                        , n = t.data
                        , r = t.ab_ext_version
                        , o = t.ab_version_multilink;
                    this.mulilinkVersions = o || [],
                        this.extVersions = r,
                    i && i.length && (this.versions = i,
                        this.data = n,
                        setTimeout(function() {
                            e._configVersions()
                        }))
                }
            }
            ,
            e.prototype.wait = function() {
                var e = this;
                this.needOverlay && (this.isWait || (this.openOverlayer(),
                    this.isWait = !0),
                    setTimeout(function() {
                        e.closeOverlayer()
                    }, this.closeTime))
            }
            ,
            e.prototype.getAllVars = function(e) {
                if ("function" != typeof e)
                    throw new Error("callback must be a function");
                var t = {
                    callback: e,
                    type: we.All
                };
                this.fetchStatus === ke.Complete ? this._getAllVars(t) : this.callbacks.push(t)
            }
            ,
            e.prototype._getAllVars = function(e) {
                (0,
                    e.callback)(this.data ? JSON.parse(JSON.stringify(this.data)) : {})
            }
            ,
            e.prototype.getVids = function() {
                try {
                    var e = ce(this.appId).ab_version
                        , t = "";
                    return e && e.length && (t = e.join(",")),
                        t
                } catch (e) {
                    return ""
                }
            }
            ,
            e.prototype.getAbSdkVersion = function(e) {
                e(this.getVids())
            }
            ,
            e.prototype.getVar = function(e, t, i) {
                if (!e)
                    throw new Error("variable must not be empty");
                if (void 0 === t)
                    throw new Error("variable no default value");
                if ("function" != typeof i)
                    throw new Error("callback must be a function");
                var n = {
                    name: e,
                    defaultValue: t,
                    callback: i,
                    type: we.Var
                };
                if (this.fetchStatus === ke.Complete) {
                    this._getVar(n, e);
                    try {
                        this.Hook.emit("onAbSdkVersionChange", this.getVids())
                    } catch (e) {}
                } else
                    this.callbacks.push(n)
            }
            ,
            e.prototype._getVar = function(e, t) {
                var i = e.name
                    , n = e.defaultValue
                    , r = e.callback
                    , o = this.data;
                if (o) {
                    if ("object" == typeof o[i] && void 0 !== o[i].val) {
                        var s = o[i].vid;
                        return "$ab_url" === t ? (-1 === this.mulilinkVersions.indexOf(s) && this.mulilinkVersions.push(s),
                            this._updateMultilinkVersions()) : (-1 === this.versions.indexOf(s) && this.versions.push(s),
                            this._updateVersions()),
                            this._abEvent(s, t, n),
                            void r(o[i].val)
                    }
                    r(n)
                } else
                    r(n)
            }
            ,
            e.prototype._abEvent = function(e, t, i) {
                var n = this;
                try {
                    if (e) {
                        var r = {
                            event: "abtest_exposure",
                            ab_sdk_version: "" + e,
                            params: JSON.stringify({
                                app_id: this.appId,
                                ab_url: "$ab_url" === t ? i : window.location.href
                            }),
                            local_time_ms: Date.now()
                        }
                            , o = this.collector._config.get()
                            , s = o.header
                            , a = o.user;
                        s.ab_sdk_version = "" + e,
                            s.custom = JSON.stringify(s.custom);
                        var c = {
                            events: [r],
                            user: a,
                            header: s
                        };
                        "$ab_url" === t ? window.navigator.sendBeacon ? window.navigator.sendBeacon(this.reportUrl, JSON.stringify([c])) : O(this.reportUrl, 2e4, [c], "") : setTimeout(function() {
                            O(n.reportUrl, 2e4, [c], "")
                        }, 16)
                    }
                } catch (e) {}
            }
            ,
            e.prototype.openOverlayer = function() {
                !function() {
                    if (!document.getElementById(b)) {
                        var e = "body { opacity: 0 !important; }"
                            , t = document.head || document.getElementsByTagName("head")[0]
                            , i = document.createElement("style");
                        i.id = b,
                            i.type = "text/css",
                            i.styleSheet ? i.styleSheet.cssText = e : i.appendChild(document.createTextNode(e)),
                            t.appendChild(i)
                    }
                }()
            }
            ,
            e.prototype.closeOverlayer = function() {
                var e;
                (e = document.getElementById(b)) && e.parentElement.removeChild(e)
            }
            ,
            e.prototype._setAbVersion = function(e) {
                this.extVersions = [e],
                    ue(this.appId, this.extVersions, !0)
            }
            ,
            e.prototype._updateVersions = function() {
                ue(this.appId, this.versions),
                    this._configVersions()
            }
            ,
            e.prototype._updateMultilinkVersions = function() {
                var e, t, i;
                e = this.appId,
                    t = this.mulilinkVersions,
                    i = {
                        ab_version_multilink: t,
                        timestamp: Date.now()
                    },
                    he(e, i)
            }
            ,
            e.prototype._configVersions = function() {
                var e = this.versions.join(",");
                e && this.collector.config({
                    ab_sdk_version: e
                })
            }
            ,
            e.prototype._getABconfig = function(e, t) {
                var i = Object.keys(e);
                i && i.length && this.collector.config(e),
                    this.init(this.collector._config.get(), t)
            }
            ,
            e.prototype._fetchComplete = function(e) {
                var t = this;
                if (e) {
                    !function(e, t) {
                        he(e, {
                            data: t
                        })
                    }(this.appId, e),
                        this.data = e;
                    var i = [];
                    Object.keys(e).forEach(function(t) {
                        var n = e[t].vid;
                        n && i.push(n)
                    }),
                    -1 !== window.location.href.indexOf("multilink=true") || (this.versions = this.versions.filter(function(e) {
                        return -1 !== i.indexOf(e)
                    }));
                    var n = e.$ab_url
                        , r = e.$ab_modification;
                    if (r && r.val && this.enable_ab_visual) {
                        if (this.collector.destroyInstance)
                            return;
                        this.getVar("$ab_modification", window.location.href, function() {
                            var e;
                            e = r.val,
                                window.TEAVisualEditor.__ab_config = e,
                                me(Ie, function() {
                                    console.log("load visual render success")
                                }, function() {
                                    console.log("load visual render fail")
                                })
                        })
                    } else if (n && this.enable_multilink) {
                        var o = n.val
                            , s = n.vid;
                        o && s && this.getVar("$ab_url", o, function() {
                            var e = window.location.href;
                            -1 !== e.indexOf("multilink=true") && (e = t.filterUrl(e)),
                                o !== e ? setTimeout(function() {
                                    if (!t.collector.destroyInstance) {
                                        var e = "" + o;
                                        -1 !== (e = -1 === e.indexOf("http") ? "https://" + e : e).indexOf("?") ? e += "&multilink=true" : e += "?multilink=true",
                                            window.location.href = e
                                    }
                                }, 50) : t.closeOverlayer()
                        })
                    } else
                        this.closeOverlayer()
                }
                this.callbacks.forEach(function(e) {
                    t[e.type === we.Var ? "_getVar" : "_getAllVars"](e, "")
                }),
                    this.callbacks = [],
                    this._updateVersions();
                try {
                    this.Hook.emit("onAbSdkVersionChange", this.getVids())
                } catch (e) {}
                this.isWait || this.closeOverlayer()
            }
            ,
            e.prototype._fetch = function(e, i) {
                var n = this
                    , r = void 0 === i ? {} : i
                    , o = r.success
                    , s = void 0 === o ? function() {}
                    : o
                    , a = r.fail
                    , c = void 0 === a ? function() {}
                    : a;
                this.fetchStatus = ke.Ing;
                var h = this.domain + "/service/2/abtest_config/"
                    , u = window.location.href
                    , l = !1;
                -1 !== u.indexOf("multilink=true") && (u = this.filterUrl(u),
                    l = !0);
                var d = l ? this.mulilinkVersions : this.versions;
                S(h, {
                    header: t({
                        aid: this.appId
                    }, this.user || {}, e || {}, {
                        ab_sdk_version: d.join(","),
                        ab_url: u
                    })
                }, function(e) {
                    n.fetchStatus = ke.Complete;
                    var t = e.data;
                    "success" === e.message ? (n._fetchComplete(t),
                        s(t)) : (n._fetchComplete(null),
                        c())
                }, function() {
                    n.fetchStatus = ke.Complete,
                        c(),
                        n._fetchComplete(null)
                }, "", this.timeout)
            }
            ,
            e.prototype.filterUrl = function(e) {
                try {
                    var t = "";
                    -1 !== e.indexOf("&multilink=true") ? t = "&multilink=true" : -1 !== e.indexOf("?multilink=true") && (t = "\\?multilink=true");
                    var i = new RegExp(t,"g");
                    e = e.replace(i, "")
                } catch (e) {}
                return e
            }
            ,
            e
    }(), Ee = function(e, t, i, n) {
        if (t) {
            var r = e.filter(function(e) {
                return !e[0].__disable_storage__
            }).length;
            if (r > 0)
                try {
                    var o = n.getItem(i);
                    if (o) {
                        var s = Object.keys(o)
                            , a = s.length + r - t;
                        if (a > 0) {
                            for (var c = s.map(function(e) {
                                var t = o[e];
                                return {
                                    id: e,
                                    index: t && t[0] ? t[0].header.__storage_index__ : +new Date
                                }
                            }).sort(function(e, t) {
                                return e.index - t.index
                            }), h = 0; h < a; h++) {
                                var u = c.shift();
                                u && u.id && o[u.id] && delete o[u.id]
                            }
                            n.setItem(i, o)
                        }
                    }
                } catch (e) {}
        }
    }, Te = function() {
        function e(e) {
            "string" == typeof e.event_verify_url ? this.url = e.event_verify_url + "/" + k : console.log("please use correct et_test url")
        }
        return e.prototype.send = function(e) {
            this.url && O(this.url, 3e4, e)
        }
            ,
            e
    }(), Ce = function() {
        return function(e, t, i, n, r) {
            t && (t.enable_stay_duration && (this.stay = new ie(n,t)),
            t.disable_session || (this.session = new ne(i)),
            t.channel_domain || t.disable_sdk_monitor || (this.monitor = new re(t)),
            t.event_verify_url && (this.et_test = new Te(t)),
            t.enable_ab_test && (this.ab = new xe(e,r,t)),
            t.max_storage_num && (this.maxStorage = Ee))
        }
    }(), Ae = n(["init", "config", "send", "start", "predefinePageView", "beconEvent", "on", "resetStayDuration", "autoInitializationRangers"], ["profileSet", "profileSetOnce", "profileIncrement", "profileUnset", "profileAppend", "getVar", "getAbSdkVersion", "onAbSdkVersionChange", "offAbSdkVersionChange", "getABconfig", "openOverlayer", "closeOverlayer", "getAllVars", "setExternalAbVersion", "getToken", "destroy"]), Ne = (Oe = +Date.now() + Number(("" + Math.random()).slice(2, 8)),
            function() {
                return Oe += 1
            }
    ), Ve = function() {
        function e(e) {
            var i = this;
            this.is_first_time = !1,
                this.Native = !1,
                this.staging = !1,
                this.sdkload = !1,
                this._getToken = !1,
                this.predefinePageView = function(e) {
                    if (void 0 === e && (e = {}),
                        i.sdkload) {
                        var n = {
                            title: document.title || location.pathname,
                            url: location.href,
                            url_path: location.pathname,
                            time: Date.now(),
                            referrer: window.document.referrer,
                            $is_first_time: "" + i.is_first_time
                        }
                            , r = t({}, n, e);
                        i.event("predefine_pageview", r, "pv")
                    } else
                        i.logger.warn("sdk init error, api can not call")
                }
                ,
                this.getToken = function(e, n) {
                    if (!i.sdkload)
                        return i.logger.warn("sdk init error, api can not call, getToken will return {}"),
                            void e({});
                    var r = !1
                        , o = function() {
                        if (!r) {
                            r = !0;
                            var n = i._config.get().user;
                            return e(t({}, n))
                        }
                    };
                    n && setTimeout(function() {
                        o()
                    }, n),
                        i._token.isTokenReady() ? o() : (i.hook.on("get-token", function() {
                            o()
                        }),
                            i._getToken = !0)
                }
                ,
                this.name = e,
                this._isSend = !1,
                this.hook = new L,
                this.storage = new h(!1)
        }
        return e.prototype.autoInitializationRangers = function(e) {}
            ,
            e.prototype.init = function(e) {
                var t = this;
                if (!this._inited) {
                    if (this._inited = !0,
                    !e || "object" != typeof e)
                        throw new Error("init params is error,please check");
                    this.logger = new J(this.name,e.log);
                    var i = e.app_id
                        , n = e.app_key;
                    n || i ? i && "number" != typeof i ? this.logger.throw("app_id param is error, must be number, please check !!!") : n && "string" != typeof n ? this.logger.warn("app_key is empty, please check!") : e.channel_domain || -1 !== ["cn", "sg", "va"].indexOf(e.channel) ? (this.Native = e.Native,
                        this.appBridge = new H(this.logger),
                        this.storage.getItem("__tea_cache_first_" + i) ? this.is_first_time = !1 : (this.is_first_time = !0,
                            this.storage.setItem("__tea_cache_first_" + i, "1")),
                        this.sdkload = !0,
                        e.Native && this.appBridge.bridgeInject() ? this.appBridge.hasStarted(function(i) {
                            i || t._init(e)
                        }) : this._init(e)) : this.logger.throw("channel must be `cn`, `sg`,`va` !!!") : this.logger.throw("no app_key or app_id please check !!!")
                }
            }
            ,
            e.prototype._init = function(e) {
                var t = this;
                this.autoPV = !0,
                    this.sdkload = !0,
                    this._initConfig = e,
                    this._config = new U(e.app_id,e,e.configPersist || 0),
                    this.configPersist = e.configPersist || 0,
                    this._config.set("app_id", e.app_id),
                    this.hook.on("token-ready", function() {
                        t.callbackSend ? t._isSend ? t._event && t._event.report() : t.start() : t._event && t._event.report()
                    }),
                    this._session = new M(e.app_key || e.app_id,e),
                    this._token = new C(e,this._config,this.hook,this._session),
                    this.plugin = new Ce(this,e,this.event.bind(this),this.beconEvent.bind(this),this.hook),
                    this._event = new V(this,e,this._config,this._token,this.plugin,this._session,e.filter),
                    this.tracer = new W(this,e,this._processEvent.bind(this),this._event),
                    this._token._getToken();
                try {
                    if (e.pluginExtend)
                        new X(e,this.event.bind(this),this.beconEvent.bind(this),this.hook).loadExtend(e.pluginExtend)
                } catch (e) {}
            }
            ,
            e.prototype.config = function(e) {
                var t = this;
                this.sdkload ? this.Native && this.appBridge.bridgeInject() ? this.appBridge.hasStarted(function(i) {
                    if (i)
                        for (var n in e)
                            "user_unique_id" === n ? t.appBridge.setUserUniqueId(e[n]) : e[n] ? t.appBridge.addHeaderInfo(n, e[n]) : t.appBridge.removeHeaderInfo(n);
                    else
                        t._setConfig(e)
                }) : this._setConfig(e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype._setConfig = function(e) {
                if (this._inited)
                    if (e && "object" == typeof e) {
                        e.disable_auto_pv && (this.autoPV = !1,
                            delete e.disable_auto_pv),
                        e._staging_flag && 1 === e._staging_flag && (this.staging = !0);
                        var i = t({}, e);
                        if (this.configPersist) {
                            var n = this._config.getStore();
                            n && (i = Object.assign(n, e)),
                                this._config.setStore(e)
                        }
                        for (var r in i) {
                            if (i.user_unique_id) {
                                "string" != typeof i.user_unique_id && this.logger.warn("user_unique_id must be string!!! please check");
                                try {
                                    var o = String(i.user_unique_id);
                                    this._token._getSsid(o)
                                } catch (e) {}
                            }
                            this._config.set(r, i[r])
                        }
                    } else
                        this.logger.warn("config params is error, please check");
                else
                    this.logger.warn("config must be use after function init")
            }
            ,
            e.prototype.on = function(e, t) {
                try {
                    e && "string" == typeof e && "function" == typeof t && this.hook.on(e, t)
                } catch (e) {}
            }
            ,
            e.prototype.send = function() {
                this.start()
            }
            ,
            e.prototype.start = function() {
                var e = this;
                this.sdkload ? this.Native && this.appBridge.bridgeInject() ? this.appBridge.hasStarted(function(t) {
                    t ? (e.logger.info("jsbrige开启，事件将由原生 sdk进行上报"),
                        e.predefinePageView()) : e._start()
                }) : this._start() : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype._start = function() {
                if (this._token.isTokenReady()) {
                    if (this._isSend)
                        return void this.logger.warn("method start can not be use over one time , please check !!");
                    this._isSend = !0,
                        this.logger.info("userInfo:" + JSON.stringify(this._config.get("user"))),
                        this.logger.info("sdk is ready,version is " + p + ". you can report now !!!"),
                        this._event.setReady(),
                    this.autoPV && this.predefinePageView(),
                    this._getToken && this.hook.emit("get-token"),
                        this.profile = new Q(this._processEvent.bind(this),this._event,this._initConfig),
                    this.plugin && this.plugin.ab && this.plugin.ab.init(this._config.get())
                } else
                    this.callbackSend = !0
            }
            ,
            e.prototype.beconEvent = function(e, t, i) {
                var n = this;
                void 0 === t && (t = {});
                var r = i || "log"
                    , o = [];
                o.push([e, t]),
                    o = o.map(function(e) {
                        return n._processEvent(e[0], e[1])
                    }),
                    this._dealEvent(!0, o, r),
                    this._addTracerCount(r)
            }
            ,
            e.prototype.event = function() {
                for (var e = this, t = [], n = 0; n < arguments.length; n++)
                    t[n] = arguments[n];
                if (this.sdkload) {
                    var r = i(t, 1)[0]
                        , o = [];
                    "Array" !== Object.prototype.toString.call(r).slice(8, -1) ? o[0] = t : o = t,
                        o = o.map(function(t) {
                            return e._processEvent(t[0], t[1])
                        }),
                        this._dealEvent(!1, o, "log"),
                        this._addTracerCount("log")
                } else
                    this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype._dealEvent = function(e, t, i) {
                var n = this;
                if (this.sdkload)
                    if (this.Native && this.appBridge.bridgeInject()) {
                        if ("autotrack" === i || "sdk" === i)
                            return;
                        this.appBridge.hasStarted(function(i) {
                            i ? t && t.length && t.forEach(function(e) {
                                var t = e.event
                                    , i = e.params;
                                n.appBridge.onEventV3(t, JSON.stringify(i))
                            }) : n._commonEvent(e, t)
                        })
                    } else
                        this._commonEvent(e, t);
                else
                    this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype._commonEvent = function(e, t) {
                e ? this._event.beconEvent(t) : this._event.event(t),
                    this._session._updateSessionId(),
                this.plugin && this.plugin.session && this.plugin.session.process()
            }
            ,
            e.prototype._addTracerCount = function(e) {
                this.sdkload ? this.Native || this.staging || this.tracer.addCount(e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype._processEvent = function(e, t) {
                try {
                    var i = e;
                    /^event\./.test(e) && (i = e.slice(6));
                    var n, r = t;
                    return "object" != typeof r && (r = {}),
                        r.profile ? delete r.profile : r.event_index = Ne(),
                        r.local_ms ? (n = r.local_ms,
                            delete r.local_ms) : n = +new Date,
                        {
                            event: i,
                            params: r,
                            local_time_ms: n,
                            is_bav: this._initConfig.autotrack ? 1 : 0
                        }
                } catch (i) {
                    return {
                        _event: e,
                        params: t
                    }
                }
            }
            ,
            e.prototype.resetStayDuration = function(e, t, i) {
                this.sdkload ? this.plugin.stay ? this.plugin.stay && this.plugin.stay.reset(e, t, i) : this.logger.info("stayDuration is not init") : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.profileSet = function(e) {
                var t = this;
                this.sdkload ? this.Native && this.appBridge.bridgeInject() ? this.appBridge.hasStarted(function(i) {
                    i ? t.appBridge.profileSet(JSON.stringify(e)) : t.profile && t.profile.setProfile(e)
                }) : this.profile && this.profile.setProfile(e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.profileSetOnce = function(e) {
                var t = this;
                this.sdkload ? this.Native && this.appBridge.bridgeInject() ? this.appBridge.hasStarted(function(i) {
                    i ? t.appBridge.profileSetOnce(JSON.stringify(e)) : t.profile && t.profile.setOnceProfile(e)
                }) : this.profile && this.profile.setOnceProfile(e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.profileIncrement = function(e) {
                var t = this;
                this.sdkload ? this.Native && this.appBridge.bridgeInject() ? this.appBridge.hasStarted(function(i) {
                    i ? t.appBridge.profileIncrement(JSON.stringify(e)) : t.profile && t.profile.incrementProfile(e)
                }) : this.profile && this.profile.incrementProfile(e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.profileUnset = function(e) {
                var t = this;
                this.sdkload ? this.Native && this.appBridge.bridgeInject() ? this.appBridge.hasStarted(function(i) {
                    i ? t.appBridge.profileUnset(e) : t.profile && t.profile.unsetProfile(e)
                }) : this.profile && this.profile.unsetProfile(e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.profileAppend = function(e) {
                var t = this;
                this.sdkload ? this.Native && this.appBridge.bridgeInject() ? this.appBridge.hasStarted(function(i) {
                    i ? t.appBridge.profileAppend(JSON.stringify(e)) : t.profile && t.profile.appendProfile(e)
                }) : this.profile && this.profile.appendProfile(e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.setExternalAbVersion = function(e) {
                this.sdkload ? e && this.plugin.ab && this.plugin.ab._setAbVersion(e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.getVar = function(e, t, i) {
                var n = this;
                if (!this.sdkload)
                    return this.logger.warn("sdk init error, api can not call, getVar return default value"),
                        void i(t);
                this.hook.on("token-error", function() {
                    n.logger.warn("sdk init error, getVar return default value"),
                        i(t)
                }),
                this.plugin.ab && this.plugin.ab.getVar(e, t, i)
            }
            ,
            e.prototype.getABconfig = function(e, t) {
                if (!this.sdkload)
                    return this.logger.warn("sdk init error, api can not call, getABconfig return null"),
                        void t(null);
                this.plugin.ab && this.plugin.ab._getABconfig(e, t)
            }
            ,
            e.prototype.getAbSdkVersion = function(e) {
                if (!this.sdkload)
                    return this.logger.warn("sdk init error, api can not call, getAbSdkVersion return null"),
                        void e(null);
                this.plugin.ab && this.plugin.ab.getAbSdkVersion(e)
            }
            ,
            e.prototype.onAbSdkVersionChange = function(e) {
                this.sdkload ? this.hook.on("onAbSdkVersionChange", e) : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.offAbSdkVersionChange = function(e) {
                this.sdkload ? e ? this.hook.off("onAbSdkVersionChange", e) : this.hook.off("onAbSdkVersionChange") : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.openOverlayer = function() {
                this.sdkload ? this.plugin.ab && this.plugin.ab.openOverlayer() : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.closeOverlayer = function() {
                this.sdkload ? this.plugin.ab && this.plugin.ab.closeOverlayer() : this.logger.warn("sdk init error, api can not call")
            }
            ,
            e.prototype.getAllVars = function(e) {
                var t = this;
                if (!this.sdkload)
                    return this.logger.warn("sdk init error, api can not call, getAllVars return null"),
                        void e(null);
                this.hook.on("token-error", function() {
                    t.logger.warn("sdk init error, getallVar return null"),
                        e(null)
                }),
                this.plugin.ab && this.plugin.ab.getAllVars(e)
            }
            ,
            e.prototype.destroy = function() {
                this.destroyInstance || (this.destroyInstance = !0,
                    this.hook.off("token-ready"))
            }
            ,
            e
    }();
    function je(e, t, i) {
        return t in e ? Object.defineProperty(e, t, {
            value: i,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : e[t] = i,
            e
    }
    var De = function(e) {
        var t = this;
        return je(this, "_exportCollect", function() {
            for (var e = arguments.length, i = new Array(e), n = 0; n < e; n++)
                i[n] = arguments[n];
            t._isProcess ? t._executeCmd.apply(t, i) : (t.cmdQueue.push(i),
                t._processCmd())
        }),
            je(this, "_processCmd", function() {
                if (0 !== t.cmdQueue.length) {
                    var e, i, n, r, o;
                    i = t.cmdQueue,
                        n = "init",
                        r = "0",
                        o = -1,
                        i.forEach(function(e, t) {
                            (void 0 !== r ? e[r] : e) === n && (o = t)
                        }),
                    -1 !== (e = o) && (t._isProcess = !0,
                        t._executeCmd.apply(t, t.cmdQueue[e]),
                        t.cmdQueue.forEach(function(i, n) {
                            n !== e && t._executeCmd.apply(t, i)
                        }),
                        t.cmdQueue = [])
                }
            }),
            je(this, "_executeCmd", function() {
                for (var e = arguments.length, i = new Array(e), n = 0; n < e; n++)
                    i[n] = arguments[n];
                var r, o, s = i[0];
                Ae.indexOf(s) > -1 ? (r = t.colloctor)[s].apply(r, i.slice(1)) : (o = t.colloctor).event.apply(o, i)
            }),
            this.cmdQueue = [],
            this.name = e,
            this.colloctor = new Ve(e),
            this._isProcess = !1,
            this._alias = {},
            this._processCmd(),
            Ae.forEach(function(e) {
                t._exportCollect[e] = t._exportCollect.bind(t, e)
            }),
            this._exportCollect
    }
        , Be = {}
        , Pe = {}
        , qe = function(e) {
        return Pe[e] || (Pe[e] = []),
            Pe[e]
    }
        , Ue = function(e) {
        try {
            var t = i(e)
                , r = t[0]
                , o = t.slice(1);
            if (!r)
                return void console.error("the eventName is: " + r + ", error, stop report, please check");
            var s = r.split(".");
            if (1 === s.length)
                qe("default").push(n([r], o));
            else if (2 === s.length)
                "event" === s[0] ? qe("default").push(n([r], o)) : qe(s[0]).push(n([s[1]], o));
            else {
                var a = s[0]
                    , c = [s[1], s[2]].join(".");
                qe(a).push(n([c], o))
            }
        } catch (e) {
            console.log(e)
        }
    }
        , Je = function() {
        Le.q.forEach(function(e) {
            var t = [].slice.call(e);
            "Array" === Object.prototype.toString.call(t[0]).slice(8, -1) ? t.forEach(function(e) {
                Ue(e)
            }) : Ue(t)
        }),
            Object.keys(Pe).forEach(function(e) {
                Pe[e].forEach(function(t) {
                    (function(e) {
                            return Be[e] || (Be[e] = new De(e)),
                                Be[e]
                        }
                    )(e).apply(void 0, n(t))
                }),
                    Pe[e] = []
            }),
            Le.q = []
    }
        , Le = function e() {
        for (var t = [], i = 0; i < arguments.length; i++)
            t[i] = arguments[i];
        e.q.push(t),
            Je()
    };
    Le.q = [],
        Le.l = Date.now(),
        Le._instanceMap = Be,
        Le._instanceCmdMap = Pe,
        Ae.forEach(function(e) {
            Le[e] = Le.bind(null, e)
        }),
        function(e) {
            if ("undefined" != typeof window) {
                var t = v();
                if (t && window[t]) {
                    var i = window[t];
                    i.init || (e.q = i.q || [],
                        e.l = i.l || Date.now(),
                        window[t] = e)
                }
            }
        }(Le),
        Je();
    var Re = De;
    return e.Collector = Re,
        e.default = Le,
        e
};

function secsdk(window, params) {
    var e = window.secsdk = {}


    "use strict";
    var t = window

    function n(e, t) {
        return e(t = {
            exports: {}
        }, t.exports),
            t.exports
    }

    var r = n((function (e) {
            function t(n) {
                return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? e.exports = t = function (e) {
                        return typeof e
                    }
                    : e.exports = t = function (e) {
                        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                    }
                    ,
                    t(n)
            }

            e.exports = t
        }
    ))
        , o = function (e) {
        return e
    }
        , i = o(window)
        , a = function (e) {
        try {
            return !!e()
        } catch (t) {
            return !0
        }
    }
        , u = !a((function () {
            return 7 != Object.defineProperty({}, 1, {
                get: function () {
                    return 7
                }
            })[1]
        }
    ))
        , c = {}.propertyIsEnumerable
        , s = Object.getOwnPropertyDescriptor
        , f = {
        f: s && !c.call({
            1: 2
        }, 1) ? function (e) {
                var t = s(this, e);
                return !!t && t.enumerable
            }
            : c
    }
        , l = function (e, t) {
        return {
            enumerable: !(1 & e),
            configurable: !(2 & e),
            writable: !(4 & e),
            value: t
        }
    }
        , h = {}.toString
        , p = function (e) {
        return h.call(e).slice(8, -1)
    }
        , v = "".split
        , d = a((function () {
            return !Object("z").propertyIsEnumerable(0)
        }
    )) ? function (e) {
            return "String" == p(e) ? v.call(e, "") : Object(e)
        }
        : Object
        , y = function (e) {
        if (null == e)
            throw TypeError("Can't call method on " + e);
        return e
    }
        , g = function (e) {
        return d(y(e))
    }
        , m = function (e) {
        return "object" === r(e) ? null !== e : "function" == typeof e
    }
        , w = function (e, t) {
        if (!m(e))
            return e;
        var n, r;
        if (t && "function" == typeof (n = e.toString) && !m(r = n.call(e)))
            return r;
        if ("function" == typeof (n = e.valueOf) && !m(r = n.call(e)))
            return r;
        if (!t && "function" == typeof (n = e.toString) && !m(r = n.call(e)))
            return r;
        throw TypeError("Can't convert object to primitive value")
    }
        , b = {}.hasOwnProperty
        , S = function (e, t) {
        return b.call(e, t)
    }
        , k = i.document
        , R = m(k) && m(k.createElement)
        , L = function (e) {
        return R ? k.createElement(e) : {}
    }
        , A = !u && !a((function () {
            return 7 != Object.defineProperty(L("div"), "a", {
                get: function () {
                    return 7
                }
            }).a
        }
    ))
        , j = Object.getOwnPropertyDescriptor
        , E = {
        f: u ? j : function (e, t) {
            if (e = g(e),
                t = w(t, !0),
                A)
                try {
                    return j(e, t)
                } catch (n) {
                }
            if (S(e, t))
                return l(!f.f.call(e, t), e[t])
        }
    }
        , O = function (e) {
        if (!m(e))
            throw TypeError(String(e) + " is not an object");
        return e
    }
        , P = Object.defineProperty
        , T = {
        f: u ? P : function (e, t, n) {
            if (O(e),
                t = w(t, !0),
                O(n),
                A)
                try {
                    return P(e, t, n)
                } catch (r) {
                }
            if ("get" in n || "set" in n)
                throw TypeError("Accessors not supported");
            return "value" in n && (e[t] = n.value),
                e
        }
    }
        , q = u ? function (e, t, n) {
            return T.f(e, t, l(1, n))
        }
        : function (e, t, n) {
            return e[t] = n,
                e
        }
        , U = function (e, t) {
        try {
            q(i, e, t)
        } catch (n) {
            i[e] = t
        }
        return t
    }
        , x = i["__core-js_shared__"] || U("__core-js_shared__", {})
        , M = Function.toString;
    "function" != typeof x.inspectSource && (x.inspectSource = function (e) {
            return M.call(e)
        }
    );
    var I, C, H, F = x.inspectSource, _ = i.WeakMap, N = "function" == typeof _ && /native code/.test(F(_)),
        B = n((function (e) {
                (e.exports = function (e, t) {
                        return x[e] || (x[e] = void 0 !== t ? t : {})
                    }
                )("versions", []).push({
                    version: "3.8.2",
                    mode: "global",
                    copyright: "© 2021 Denis Pushkarev (zloirock.ru)"
                })
            }
        )), D = 0, X = Math.random(), G = function (e) {
            return "Symbol(" + String(void 0 === e ? "" : e) + ")_" + (++D + X).toString(36)
        }, V = B("keys"), W = function (e) {
            return V[e] || (V[e] = G(e))
        }, z = {}, $ = i.WeakMap;
    if (N) {
        var Y = x.state || (x.state = new $)
            , J = Y.get
            , K = Y.has
            , Z = Y.set;
        I = function (e, t) {
            return t.facade = e,
                Z.call(Y, e, t),
                t
        }
            ,
            C = function (e) {
                return J.call(Y, e) || {}
            }
            ,
            H = function (e) {
                return K.call(Y, e)
            }
    } else {
        var Q = W("state");
        z[Q] = !0,
            I = function (e, t) {
                return t.facade = e,
                    q(e, Q, t),
                    t
            }
            ,
            C = function (e) {
                return S(e, Q) ? e[Q] : {}
            }
            ,
            H = function (e) {
                return S(e, Q)
            }
    }
    var ee = {
            set: I,
            get: C,
            has: H,
            enforce: function (e) {
                return H(e) ? C(e) : I(e, {})
            },
            getterFor: function (e) {
                return function (t) {
                    var n;
                    if (!m(t) || (n = C(t)).type !== e)
                        throw TypeError("Incompatible receiver, " + e + " required");
                    return n
                }
            }
        }
        , te = n((function (e) {
                var t = ee.get
                    , n = ee.enforce
                    , r = String(String).split("String");
                (e.exports = function (e, t, o, a) {
                        var u, c = !!a && !!a.unsafe, s = !!a && !!a.enumerable, f = !!a && !!a.noTargetGet;
                        "function" == typeof o && ("string" != typeof t || S(o, "name") || q(o, "name", t),
                        (u = n(o)).source || (u.source = r.join("string" == typeof t ? t : ""))),
                            e !== i ? (c ? !f && e[t] && (s = !0) : delete e[t],
                                s ? e[t] = o : q(e, t, o)) : s ? e[t] = o : U(t, o)
                    }
                )(Function.prototype, "toString", (function () {
                        return "function" == typeof this && t(this).source || F(this)
                    }
                ))
            }
        ))
        , ne = i
        , re = function (e) {
            return "function" == typeof e ? e : void 0
        }
        , oe = function (e, t) {
            return arguments.length < 2 ? re(ne[e]) || re(i[e]) : ne[e] && ne[e][t] || i[e] && i[e][t]
        }
        , ie = Math.ceil
        , ae = Math.floor
        , ue = function (e) {
            return isNaN(e = +e) ? 0 : (e > 0 ? ae : ie)(e)
        }
        , ce = Math.min
        , se = function (e) {
            return e > 0 ? ce(ue(e), 9007199254740991) : 0
        }
        , fe = Math.max
        , le = Math.min
        , he = function (e) {
            return function (t, n, r) {
                var o, i = g(t), a = se(i.length), u = function (e, t) {
                    var n = ue(e);
                    return n < 0 ? fe(n + t, 0) : le(n, t)
                }(r, a);
                if (e && n != n) {
                    for (; a > u;)
                        if ((o = i[u++]) != o)
                            return !0
                } else
                    for (; a > u; u++)
                        if ((e || u in i) && i[u] === n)
                            return e || u || 0;
                return !e && -1
            }
        }
        , pe = {
            includes: he(!0),
            indexOf: he(!1)
        }
        , ve = pe.indexOf
        , de = function (e, t) {
            var n, r = g(e), o = 0, i = [];
            for (n in r)
                !S(z, n) && S(r, n) && i.push(n);
            for (; t.length > o;)
                S(r, n = t[o++]) && (~ve(i, n) || i.push(n));
            return i
        }
        ,
        ye = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
        , ge = ye.concat("length", "prototype")
        , me = {
            f: Object.getOwnPropertyNames || function (e) {
                return de(e, ge)
            }
        }
        , we = {
            f: Object.getOwnPropertySymbols
        }
        , be = oe("Reflect", "ownKeys") || function (e) {
            var t = me.f(O(e))
                , n = we.f;
            return n ? t.concat(n(e)) : t
        }
        , Se = function (e, t) {
            for (var n = be(t), r = T.f, o = E.f, i = 0; i < n.length; i++) {
                var a = n[i];
                S(e, a) || r(e, a, o(t, a))
            }
        }
        , ke = /#|\.prototype\./
        , Re = function (e, t) {
            var n = Ae[Le(e)];
            return n == Ee || n != je && ("function" == typeof t ? a(t) : !!t)
        }
        , Le = Re.normalize = function (e) {
            return String(e).replace(ke, ".").toLowerCase()
        }
        , Ae = Re.data = {}
        , je = Re.NATIVE = "N"
        , Ee = Re.POLYFILL = "P"
        , Oe = Re
        , Pe = E.f
        , Te = function (e, t) {
            var n, o, a, u, c, s = e.target, f = e.global, l = e.stat;
            if (n = f ? i : l ? i[s] || U(s, {}) : (i[s] || {}).prototype)
                for (o in t) {
                    if (u = t[o],
                        a = e.noTargetGet ? (c = Pe(n, o)) && c.value : n[o],
                    !Oe(f ? o : s + (l ? "." : "#") + o, e.forced) && void 0 !== a) {
                        if (r(u) === r(a))
                            continue;
                        Se(u, a)
                    }
                    (e.sham || a && a.sham) && q(u, "sham", !0),
                        te(n, o, u, e)
                }
        }
        , qe = function (e) {
            if ("function" != typeof e)
                throw TypeError(String(e) + " is not a function");
            return e
        }
        , Ue = function (e, t, n) {
            if (qe(e),
            void 0 === t)
                return e;
            switch (n) {
                case 0:
                    return function () {
                        return e.call(t)
                    }
                        ;
                case 1:
                    return function (n) {
                        return e.call(t, n)
                    }
                        ;
                case 2:
                    return function (n, r) {
                        return e.call(t, n, r)
                    }
                        ;
                case 3:
                    return function (n, r, o) {
                        return e.call(t, n, r, o)
                    }
            }
            return function () {
                return e.apply(t, arguments)
            }
        }
        , xe = function (e) {
            return Object(y(e))
        }
        , Me = Array.isArray || function (e) {
            return "Array" == p(e)
        }
        , Ie = !!Object.getOwnPropertySymbols && !a((function () {
                return !String(Symbol())
            }
        ))
        , Ce = Ie && !Symbol.sham && "symbol" == r(Symbol.iterator)
        , He = B("wks")
        , Fe = i.Symbol
        , _e = Ce ? Fe : Fe && Fe.withoutSetter || G
        , Ne = function (e) {
            return S(He, e) || (Ie && S(Fe, e) ? He[e] = Fe[e] : He[e] = _e("Symbol." + e)),
                He[e]
        }
        , Be = Ne("species")
        , De = function (e, t) {
            var n;
            return Me(e) && ("function" != typeof (n = e.constructor) || n !== Array && !Me(n.prototype) ? m(n) && null === (n = n[Be]) && (n = void 0) : n = void 0),
                new (void 0 === n ? Array : n)(0 === t ? 0 : t)
        }
        , Xe = [].push
        , Ge = function (e) {
            var t = 1 == e
                , n = 2 == e
                , r = 3 == e
                , o = 4 == e
                , i = 6 == e
                , a = 7 == e
                , u = 5 == e || i;
            return function (c, s, f, l) {
                for (var h, p, v = xe(c), y = d(v), g = Ue(s, f, 3), m = se(y.length), w = 0, b = l || De, S = t ? b(c, m) : n || a ? b(c, 0) : void 0; m > w; w++)
                    if ((u || w in y) && (p = g(h = y[w], w, v),
                        e))
                        if (t)
                            S[w] = p;
                        else if (p)
                            switch (e) {
                                case 3:
                                    return !0;
                                case 5:
                                    return h;
                                case 6:
                                    return w;
                                case 2:
                                    Xe.call(S, h)
                            }
                        else
                            switch (e) {
                                case 4:
                                    return !1;
                                case 7:
                                    Xe.call(S, h)
                            }
                return i ? -1 : r || o ? o : S
            }
        }
        , Ve = {
            forEach: Ge(0),
            map: Ge(1),
            filter: Ge(2),
            some: Ge(3),
            every: Ge(4),
            find: Ge(5),
            findIndex: Ge(6),
            filterOut: Ge(7)
        }
        , We = function (e, t) {
            var n = [][e];
            return !!n && a((function () {
                    n.call(null, t || function () {
                        throw 1
                    }
                        , 1)
                }
            ))
        }
        , ze = Object.defineProperty
        , $e = {}
        , Ye = function (e) {
            throw e
        }
        , Je = function (e, t) {
            if (S($e, e))
                return $e[e];
            t || (t = {});
            var n = [][e]
                , r = !!S(t, "ACCESSORS") && t.ACCESSORS
                , o = S(t, 0) ? t[0] : Ye
                , i = S(t, 1) ? t[1] : void 0;
            return $e[e] = !!n && !a((function () {
                    if (r && !u)
                        return !0;
                    var e = {
                        length: -1
                    };
                    r ? ze(e, 1, {
                        enumerable: !0,
                        get: Ye
                    }) : e[1] = 1,
                        n.call(e, o, i)
                }
            ))
        }
        , Ke = Ve.forEach
        , Ze = We("forEach")
        , Qe = Je("forEach")
        , et = Ze && Qe ? [].forEach : function (e) {
            return Ke(this, e, arguments.length > 1 ? arguments[1] : void 0)
        }
    ;
    Te({
        target: "Array",
        proto: !0,
        forced: [].forEach != et
    }, {
        forEach: et
    });
    var tt, nt = Object.keys || function (e) {
        return de(e, ye)
    }
        , rt = u ? Object.defineProperties : function (e, t) {
        O(e);
        for (var n, r = nt(t), o = r.length, i = 0; o > i;)
            T.f(e, n = r[i++], t[n]);
        return e
    }
        , ot = oe("document", "documentElement"), it = W("IE_PROTO"), at = function () {
    }, ut = function (e) {
        return "<script>" + e + "<\/script>"
    }, ct = function () {
        try {
            tt = document.domain && new ActiveXObject("htmlfile")
        } catch (r) {
        }
        var e, t;
        ct = tt ? function (e) {
            e.write(ut("")),
                e.close();
            var t = e.parentWindow.Object;
            return e = null,
                t
        }(tt) : ((t = L("iframe")).style.display = "none",
            ot.appendChild(t),
            t.src = String("javascript:"),
            (e = t.contentWindow.document).open(),
            e.write(ut("document.F=Object")),
            e.close(),
            e.F);
        for (var n = ye.length; n--;)
            delete ct.prototype[ye[n]];
        return ct()
    };
    z[it] = !0;
    var st = Object.create || function (e, t) {
        var n;
        return null !== e ? (at.prototype = O(e),
            n = new at,
            at.prototype = null,
            n[it] = e) : n = ct(),
            void 0 === t ? n : rt(n, t)
    }
        , ft = Ne("unscopables")
        , lt = Array.prototype;
    null == lt[ft] && T.f(lt, ft, {
        configurable: !0,
        value: st(null)
    });
    var ht = function (e) {
        lt[ft][e] = !0
    }
        , pt = pe.includes
        , vt = Je("indexOf", {
        ACCESSORS: !0,
        1: 0
    });
    Te({
        target: "Array",
        proto: !0,
        forced: !vt
    }, {
        includes: function (e) {
            return pt(this, e, arguments.length > 1 ? arguments[1] : void 0)
        }
    }),
        ht("includes");
    var dt, yt, gt = oe("navigator", "userAgent") || "", mt = i.process, wt = mt && mt.versions, bt = wt && wt.v8;
    bt ? yt = (dt = bt.split("."))[0] + dt[1] : gt && (!(dt = gt.match(/Edge\/(\d+)/)) || dt[1] >= 74) && (dt = gt.match(/Chrome\/(\d+)/)) && (yt = dt[1]);
    var St = yt && +yt
        , kt = Ne("species")
        , Rt = Ve.map
        , Lt = function (e) {
        return St >= 51 || !a((function () {
                var t = [];
                return (t.constructor = {})[kt] = function () {
                    return {
                        foo: 1
                    }
                }
                    ,
                1 !== t[e](Boolean).foo
            }
        ))
    }("map")
        , At = Je("map");
    Te({
        target: "Array",
        proto: !0,
        forced: !Lt || !At
    }, {
        map: function (e) {
            return Rt(this, e, arguments.length > 1 ? arguments[1] : void 0)
        }
    });
    var jt = Ve.some
        , Et = We("some")
        , Ot = Je("some");
    Te({
        target: "Array",
        proto: !0,
        forced: !Et || !Ot
    }, {
        some: function (e) {
            return jt(this, e, arguments.length > 1 ? arguments[1] : void 0)
        }
    });
    var Pt = Object.assign
        , Tt = Object.defineProperty
        , qt = !Pt || a((function () {
            if (u && 1 !== Pt({
                b: 1
            }, Pt(Tt({}, "a", {
                enumerable: !0,
                get: function () {
                    Tt(this, "b", {
                        value: 3,
                        enumerable: !1
                    })
                }
            }), {
                b: 2
            })).b)
                return !0;
            var e = {}
                , t = {}
                , n = Symbol();
            return e[n] = 7,
                "abcdefghijklmnopqrst".split("").forEach((function (e) {
                        t[e] = e
                    }
                )),
            7 != Pt({}, e)[n] || "abcdefghijklmnopqrst" != nt(Pt({}, t)).join("")
        }
    )) ? function (e, t) {
            for (var n = xe(e), r = arguments.length, o = 1, i = we.f, a = f.f; r > o;)
                for (var c, s = d(arguments[o++]), l = i ? nt(s).concat(i(s)) : nt(s), h = l.length, p = 0; h > p;)
                    c = l[p++],
                    u && !a.call(s, c) || (n[c] = s[c]);
            return n
        }
        : Pt;
    Te({
        target: "Object",
        stat: !0,
        forced: Object.assign !== qt
    }, {
        assign: qt
    });
    var Ut = {};
    Ut[Ne("toStringTag")] = "z";
    var xt = "[object z]" === String(Ut)
        , Mt = Ne("toStringTag")
        , It = "Arguments" == p(function () {
            return arguments
        }())
        , Ct = xt ? p : function (e) {
            var t, n, r;
            return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (n = function (e, t) {
                try {
                    return e[t]
                } catch (n) {
                }
            }(t = Object(e), Mt)) ? n : It ? p(t) : "Object" == (r = p(t)) && "function" == typeof t.callee ? "Arguments" : r
        }
        , Ht = xt ? {}.toString : function () {
            return "[object " + Ct(this) + "]"
        }
    ;
    xt || te(Object.prototype, "toString", Ht, {
        unsafe: !0
    });
    var Ft = i.Promise
        , _t = function (e, t, n) {
        for (var r in t)
            te(e, r, t[r], n);
        return e
    }
        , Nt = T.f
        , Bt = Ne("toStringTag")
        , Dt = function (e, t, n) {
        e && !S(e = n ? e : e.prototype, Bt) && Nt(e, Bt, {
            configurable: !0,
            value: t
        })
    }
        , Xt = Ne("species")
        , Gt = function (e, t, n) {
        if (!(e instanceof t))
            throw TypeError("Incorrect " + (n ? n + " " : "") + "invocation");
        return e
    }
        , Vt = {}
        , Wt = Ne("iterator")
        , zt = Array.prototype
        , $t = function (e) {
        return void 0 !== e && (Vt.Array === e || zt[Wt] === e)
    }
        , Yt = Ne("iterator")
        , Jt = function (e) {
        if (null != e)
            return e[Yt] || e["@@iterator"] || Vt[Ct(e)]
    }
        , Kt = function (e) {
        var t = e.return;
        if (void 0 !== t)
            return O(t.call(e)).value
    }
        , Zt = function (e, t) {
        this.stopped = e,
            this.result = t
    }
        , Qt = function (e, t, n) {
        var o, i, a, u, c, s, f, l = n && n.that, h = !(!n || !n.AS_ENTRIES), p = !(!n || !n.IS_ITERATOR),
            v = !(!n || !n.INTERRUPTED), d = Ue(t, l, 1 + h + v), y = function (e) {
                return o && Kt(o),
                    new Zt(!0, e)
            }, g = function (e) {
                return h ? (O(e),
                    v ? d(e[0], e[1], y) : d(e[0], e[1])) : v ? d(e, y) : d(e)
            };
        if (p)
            o = e;
        else {
            if ("function" != typeof (i = Jt(e)))
                throw TypeError("Target is not iterable");
            if ($t(i)) {
                for (a = 0,
                         u = se(e.length); u > a; a++)
                    if ((c = g(e[a])) && c instanceof Zt)
                        return c;
                return new Zt(!1)
            }
            o = i.call(e)
        }
        for (s = o.next; !(f = s.call(o)).done;) {
            try {
                c = g(f.value)
            } catch (m) {
                throw Kt(o),
                    m
            }
            if ("object" == r(c) && c && c instanceof Zt)
                return c
        }
        return new Zt(!1)
    }
        , en = Ne("iterator")
        , tn = !1;
    try {
        var nn = 0
            , rn = {
            next: function () {
                return {
                    done: !!nn++
                }
            },
            return: function () {
                tn = !0
            }
        };
        rn[en] = function () {
            return this
        }
            ,
            Array.from(rn, (function () {
                    throw 2
                }
            ))
    } catch (wa) {
    }
    var on, an, un, cn = Ne("species"), sn = function (e, t) {
            var n, r = O(e).constructor;
            return void 0 === r || null == (n = O(r)[cn]) ? t : qe(n)
        }, fn = /(iphone|ipod|ipad).*applewebkit/i.test(gt), ln = "process" == p(i.process), hn = i.location,
        pn = i.setImmediate, vn = i.clearImmediate, dn = i.process, yn = i.MessageChannel, gn = i.Dispatch, mn = 0,
        wn = {}, bn = function (e) {
            if (wn.hasOwnProperty(e)) {
                var t = wn[e];
                delete wn[e],
                    t()
            }
        }, Sn = function (e) {
            return function () {
                bn(e)
            }
        }, kn = function (e) {
            bn(e.data)
        }, Rn = function (e) {
            i.postMessage(e + "", hn.protocol + "//" + hn.host)
        };
    pn && vn || (pn = function (e) {
            for (var t = [], n = 1; arguments.length > n;)
                t.push(arguments[n++]);
            return wn[++mn] = function () {
                ("function" == typeof e ? e : Function(e)).apply(void 0, t)
            }
                ,
                on(mn),
                mn
        }
            ,
            vn = function (e) {
                delete wn[e]
            }
            ,
            ln ? on = function (e) {
                    dn.nextTick(Sn(e))
                }
                : gn && gn.now ? on = function (e) {
                    gn.now(Sn(e))
                }
                : yn && !fn ? (un = (an = new yn).port2,
                    an.port1.onmessage = kn,
                    on = Ue(un.postMessage, un, 1)) : i.addEventListener && "function" == typeof postMessage && !i.importScripts && hn && "file:" !== hn.protocol && !a(Rn) ? (on = Rn,
                    i.addEventListener("message", kn, !1)) : on = "onreadystatechange" in L("script") ? function (e) {
                        ot.appendChild(L("script")).onreadystatechange = function () {
                            ot.removeChild(this),
                                bn(e)
                        }
                    }
                    : function (e) {
                        setTimeout(Sn(e), 0)
                    }
    );
    var Ln, An, jn, En, On, Pn, Tn, qn, Un = {
            set: pn,
            clear: vn
        }, xn = /web0s(?!.*chrome)/i.test(gt), Mn = E.f, In = Un.set, Cn = i.MutationObserver || i.WebKitMutationObserver,
        Hn = i.document, Fn = i.process, _n = i.Promise, Nn = Mn(i, "queueMicrotask"), Bn = Nn && Nn.value;
    Bn || (Ln = function () {
        var e, t;
        for (ln && (e = Fn.domain) && e.exit(); An;) {
            t = An.fn,
                An = An.next;
            try {
                t()
            } catch (wa) {
                throw An ? En() : jn = void 0,
                    wa
            }
        }
        jn = void 0,
        e && e.enter()
    }
        ,
        fn || ln || xn || !Cn || !Hn ? _n && _n.resolve ? (Tn = _n.resolve(void 0),
                    qn = Tn.then,
                    En = function () {
                        qn.call(Tn, Ln)
                    }
            ) : En = ln ? function () {
                Fn.nextTick(Ln)
            }
            : function () {
                In.call(i, Ln)
            }
            : (On = !0,
                    Pn = Hn.createTextNode(""),
                    new Cn(Ln).observe(Pn, {
                        characterData: !0
                    }),
                    En = function () {
                        Pn.data = On = !On
                    }
            ));
    var Dn, Xn, Gn, Vn, Wn = Bn || function (e) {
            var t = {
                fn: e,
                next: void 0
            };
            jn && (jn.next = t),
            An || (An = t,
                En()),
                jn = t
        }
        , zn = function (e) {
            var t, n;
            this.promise = new e((function (e, r) {
                    if (void 0 !== t || void 0 !== n)
                        throw TypeError("Bad Promise constructor");
                    t = e,
                        n = r
                }
            )),
                this.resolve = qe(t),
                this.reject = qe(n)
        }, $n = {
            f: function (e) {
                return new zn(e)
            }
        }, Yn = function (e, t) {
            if (O(e),
            m(t) && t.constructor === e)
                return t;
            var n = $n.f(e);
            return (0,
                n.resolve)(t),
                n.promise
        }, Jn = function (e) {
            try {
                return {
                    error: !1,
                    value: e()
                }
            } catch (wa) {
                return {
                    error: !0,
                    value: wa
                }
            }
        }, Kn = Un.set, Zn = Ne("species"), Qn = "Promise", er = ee.get, tr = ee.set, nr = ee.getterFor(Qn), rr = Ft,
        or = i.TypeError, ir = i.document, ar = i.process, ur = oe("fetch"), cr = $n.f, sr = cr,
        fr = !!(ir && ir.createEvent && i.dispatchEvent), lr = "function" == typeof PromiseRejectionEvent,
        hr = Oe(Qn, (function () {
                if (!(F(rr) !== String(rr))) {
                    if (66 === St)
                        return !0;
                    if (!ln && !lr)
                        return !0
                }
                if (St >= 51 && /native code/.test(rr))
                    return !1;
                var e = rr.resolve(1)
                    , t = function (e) {
                    e((function () {
                        }
                    ), (function () {
                        }
                    ))
                };
                return (e.constructor = {})[Zn] = t,
                    !(e.then((function () {
                        }
                    )) instanceof t)
            }
        )), pr = hr || !function (e, t) {
            if (!t && !tn)
                return !1;
            var n = !1;
            try {
                var r = {};
                r[en] = function () {
                    return {
                        next: function () {
                            return {
                                done: n = !0
                            }
                        }
                    }
                }
                    ,
                    e(r)
            } catch (wa) {
            }
            return n
        }((function (e) {
                rr.all(e).catch((function () {
                    }
                ))
            }
        )), vr = function (e) {
            var t;
            return !(!m(e) || "function" != typeof (t = e.then)) && t
        }, dr = function (e, t) {
            if (!e.notified) {
                e.notified = !0;
                var n = e.reactions;
                Wn((function () {
                        for (var r = e.value, o = 1 == e.state, i = 0; n.length > i;) {
                            var a, u, c, s = n[i++], f = o ? s.ok : s.fail, l = s.resolve, h = s.reject, p = s.domain;
                            try {
                                f ? (o || (2 === e.rejection && wr(e),
                                    e.rejection = 1),
                                    !0 === f ? a = r : (p && p.enter(),
                                        a = f(r),
                                    p && (p.exit(),
                                        c = !0)),
                                    a === s.promise ? h(or("Promise-chain cycle")) : (u = vr(a)) ? u.call(a, l, h) : l(a)) : h(r)
                            } catch (wa) {
                                p && !c && p.exit(),
                                    h(wa)
                            }
                        }
                        e.reactions = [],
                            e.notified = !1,
                        t && !e.rejection && gr(e)
                    }
                ))
            }
        }, yr = function (e, t, n) {
            var r, o;
            fr ? ((r = ir.createEvent("Event")).promise = t,
                r.reason = n,
                r.initEvent(e, !1, !0),
                i.dispatchEvent(r)) : r = {
                promise: t,
                reason: n
            },
                !lr && (o = i["on" + e]) ? o(r) : "unhandledrejection" === e && function (e, t) {
                    var n = i.console;
                    n && n.error && (1 === arguments.length ? n.error(e) : n.error(e, t))
                }("Unhandled promise rejection", n)
        }, gr = function (e) {
            Kn.call(i, (function () {
                    var t, n = e.facade, r = e.value;
                    if (mr(e) && (t = Jn((function () {
                            ln ? ar.emit("unhandledRejection", r, n) : yr("unhandledrejection", n, r)
                        }
                    )),
                        e.rejection = ln || mr(e) ? 2 : 1,
                        t.error))
                        throw t.value
                }
            ))
        }, mr = function (e) {
            return 1 !== e.rejection && !e.parent
        }, wr = function (e) {
            Kn.call(i, (function () {
                    var t = e.facade;
                    ln ? ar.emit("rejectionHandled", t) : yr("rejectionhandled", t, e.value)
                }
            ))
        }, br = function (e, t, n) {
            return function (r) {
                e(t, r, n)
            }
        }, Sr = function (e, t, n) {
            e.done || (e.done = !0,
            n && (e = n),
                e.value = t,
                e.state = 2,
                dr(e, !0))
        }, kr = function e(t, n, r) {
            if (!t.done) {
                t.done = !0,
                r && (t = r);
                try {
                    if (t.facade === n)
                        throw or("Promise can't be resolved itself");
                    var o = vr(n);
                    o ? Wn((function () {
                            var r = {
                                done: !1
                            };
                            try {
                                o.call(n, br(e, r, t), br(Sr, r, t))
                            } catch (wa) {
                                Sr(r, wa, t)
                            }
                        }
                    )) : (t.value = n,
                        t.state = 1,
                        dr(t, !1))
                } catch (wa) {
                    Sr({
                        done: !1
                    }, wa, t)
                }
            }
        };
    hr && (rr = function (e) {
        Gt(this, rr, Qn),
            qe(e),
            Dn.call(this);
        var t = er(this);
        try {
            e(br(kr, t), br(Sr, t))
        } catch (wa) {
            Sr(t, wa)
        }
    }
        ,
        (Dn = function (e) {
                tr(this, {
                    type: Qn,
                    done: !1,
                    notified: !1,
                    parent: !1,
                    reactions: [],
                    rejection: !1,
                    state: 0,
                    value: void 0
                })
            }
        ).prototype = _t(rr.prototype, {
            then: function (e, t) {
                var n = nr(this)
                    , r = cr(sn(this, rr));
                return r.ok = "function" != typeof e || e,
                    r.fail = "function" == typeof t && t,
                    r.domain = ln ? ar.domain : void 0,
                    n.parent = !0,
                    n.reactions.push(r),
                0 != n.state && dr(n, !1),
                    r.promise
            },
            catch: function (e) {
                return this.then(void 0, e)
            }
        }),
        Xn = function () {
            var e = new Dn
                , t = er(e);
            this.promise = e,
                this.resolve = br(kr, t),
                this.reject = br(Sr, t)
        }
        ,
        $n.f = cr = function (e) {
            return e === rr || e === Gn ? new Xn(e) : sr(e)
        }
        ,
    "function" == typeof Ft && (Vn = Ft.prototype.then,
        te(Ft.prototype, "then", (function (e, t) {
                var n = this;
                return new rr((function (e, t) {
                        Vn.call(n, e, t)
                    }
                )).then(e, t)
            }
        ), {
            unsafe: !0
        }),
    "function" == typeof ur && Te({
        global: !0,
        enumerable: !0,
        forced: !0
    }, {
        fetch: function (e) {
            return Yn(rr, ur.apply(i, arguments))
        }
    }))),
        Te({
            global: !0,
            wrap: !0,
            forced: hr
        }, {
            Promise: rr
        }),
        Dt(rr, Qn, !1),
        function (e) {
            var t = oe(e)
                , n = T.f;
            u && t && !t[Xt] && n(t, Xt, {
                configurable: !0,
                get: function () {
                    return this
                }
            })
        }(Qn),
        Gn = oe(Qn),
        Te({
            target: Qn,
            stat: !0,
            forced: hr
        }, {
            reject: function (e) {
                var t = cr(this);
                return t.reject.call(void 0, e),
                    t.promise
            }
        }),
        Te({
            target: Qn,
            stat: !0,
            forced: hr
        }, {
            resolve: function (e) {
                return Yn(this, e)
            }
        }),
        Te({
            target: Qn,
            stat: !0,
            forced: pr
        }, {
            all: function (e) {
                var t = this
                    , n = cr(t)
                    , r = n.resolve
                    , o = n.reject
                    , i = Jn((function () {
                        var n = qe(t.resolve)
                            , i = []
                            , a = 0
                            , u = 1;
                        Qt(e, (function (e) {
                                var c = a++
                                    , s = !1;
                                i.push(void 0),
                                    u++,
                                    n.call(t, e).then((function (e) {
                                            s || (s = !0,
                                                i[c] = e,
                                            --u || r(i))
                                        }
                                    ), o)
                            }
                        )),
                        --u || r(i)
                    }
                ));
                return i.error && o(i.value),
                    n.promise
            },
            race: function (e) {
                var t = this
                    , n = cr(t)
                    , r = n.reject
                    , o = Jn((function () {
                        var o = qe(t.resolve);
                        Qt(e, (function (e) {
                                o.call(t, e).then(n.resolve, r)
                            }
                        ))
                    }
                ));
                return o.error && r(o.value),
                    n.promise
            }
        });
    var Rr = !!Ft && a((function () {
            Ft.prototype.finally.call({
                then: function () {
                }
            }, (function () {
                }
            ))
        }
    ));
    Te({
        target: "Promise",
        proto: !0,
        real: !0,
        forced: Rr
    }, {
        finally: function (e) {
            var t = sn(this, oe("Promise"))
                , n = "function" == typeof e;
            return this.then(n ? function (n) {
                    return Yn(t, e()).then((function () {
                            return n
                        }
                    ))
                }
                : e, n ? function (n) {
                    return Yn(t, e()).then((function () {
                            throw n
                        }
                    ))
                }
                : e)
        }
    }),
    "function" != typeof Ft || Ft.prototype.finally || te(Ft.prototype, "finally", oe("Promise").prototype.finally);
    var Lr, Ar, jr, Er = function (e) {
        return function (t, n) {
            var r, o, i = String(y(t)), a = ue(n), u = i.length;
            return a < 0 || a >= u ? e ? "" : void 0 : (r = i.charCodeAt(a)) < 55296 || r > 56319 || a + 1 === u || (o = i.charCodeAt(a + 1)) < 56320 || o > 57343 ? e ? i.charAt(a) : r : e ? i.slice(a, a + 2) : o - 56320 + (r - 55296 << 10) + 65536
        }
    }, Or = {
        codeAt: Er(!1),
        charAt: Er(!0)
    }, Pr = !a((function () {
            function e() {
            }

            return e.prototype.constructor = null,
            Object.getPrototypeOf(new e) !== e.prototype
        }
    )), Tr = W("IE_PROTO"), qr = Object.prototype, Ur = Pr ? Object.getPrototypeOf : function (e) {
        return e = xe(e),
            S(e, Tr) ? e[Tr] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? qr : null
    }
        , xr = Ne("iterator"), Mr = !1;
    [].keys && ("next" in (jr = [].keys()) ? (Ar = Ur(Ur(jr))) !== Object.prototype && (Lr = Ar) : Mr = !0),
    null == Lr && (Lr = {}),
    S(Lr, xr) || q(Lr, xr, (function () {
            return this
        }
    ));
    var Ir = {
        IteratorPrototype: Lr,
        BUGGY_SAFARI_ITERATORS: Mr
    }
        , Cr = Ir.IteratorPrototype
        , Hr = function () {
        return this
    }
        , Fr = function (e, t, n) {
        var r = t + " Iterator";
        return e.prototype = st(Cr, {
            next: l(1, n)
        }),
            Dt(e, r, !1),
            Vt[r] = Hr,
            e
    }
        , _r = Object.setPrototypeOf || ("__proto__" in {} ? function () {
        var e, t = !1, n = {};
        try {
            (e = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(n, []),
                t = n instanceof Array
        } catch (wa) {
        }
        return function (n, r) {
            return O(n),
                function (e) {
                    if (!m(e) && null !== e)
                        throw TypeError("Can't set " + String(e) + " as a prototype")
                }(r),
                t ? e.call(n, r) : n.__proto__ = r,
                n
        }
    }() : void 0)
        , Nr = Ir.IteratorPrototype
        , Br = Ir.BUGGY_SAFARI_ITERATORS
        , Dr = Ne("iterator")
        , Xr = function () {
        return this
    }
        , Gr = function (e, t, n, r, o, i, a) {
        Fr(n, t, r);
        var u, c, s, f = function (e) {
                if (e === o && d)
                    return d;
                if (!Br && e in p)
                    return p[e];
                switch (e) {
                    case "keys":
                    case "values":
                    case "entries":
                        return function () {
                            return new n(this, e)
                        }
                }
                return function () {
                    return new n(this)
                }
            }, l = t + " Iterator", h = !1, p = e.prototype, v = p[Dr] || p["@@iterator"] || o && p[o],
            d = !Br && v || f(o), y = "Array" == t && p.entries || v;
        if (y && (u = Ur(y.call(new e)),
        Nr !== Object.prototype && u.next && (Ur(u) !== Nr && (_r ? _r(u, Nr) : "function" != typeof u[Dr] && q(u, Dr, Xr)),
            Dt(u, l, !0))),
        "values" == o && v && "values" !== v.name && (h = !0,
                d = function () {
                    return v.call(this)
                }
        ),
        p[Dr] !== d && q(p, Dr, d),
            Vt[t] = d,
            o)
            if (c = {
                values: f("values"),
                keys: i ? d : f("keys"),
                entries: f("entries")
            },
                a)
                for (s in c)
                    (Br || h || !(s in p)) && te(p, s, c[s]);
            else
                Te({
                    target: t,
                    proto: !0,
                    forced: Br || h
                }, c);
        return c
    }
        , Vr = Or.charAt
        , Wr = ee.set
        , zr = ee.getterFor("String Iterator");
    Gr(String, "String", (function (e) {
            Wr(this, {
                type: "String Iterator",
                string: String(e),
                index: 0
            })
        }
    ), (function () {
            var e, t = zr(this), n = t.string, r = t.index;
            return r >= n.length ? {
                value: void 0,
                done: !0
            } : (e = Vr(n, r),
                t.index += e.length,
                {
                    value: e,
                    done: !1
                })
        }
    ));
    var $r = function (e, t) {
        var n = this;
        if (!(n instanceof $r))
            return new $r(e, t);
        _r && (n = _r(new Error(void 0), Ur(n))),
        void 0 !== t && q(n, "message", String(t));
        var r = [];
        return Qt(e, r.push, {
            that: r
        }),
            q(n, "errors", r),
            n
    };
    $r.prototype = st(Error.prototype, {
        constructor: l(5, $r),
        message: l(5, ""),
        name: l(5, "AggregateError")
    }),
        Te({
            global: !0
        }, {
            AggregateError: $r
        }),
        Te({
            target: "Promise",
            stat: !0
        }, {
            allSettled: function (e) {
                var t = this
                    , n = $n.f(t)
                    , r = n.resolve
                    , o = n.reject
                    , i = Jn((function () {
                        var n = qe(t.resolve)
                            , o = []
                            , i = 0
                            , a = 1;
                        Qt(e, (function (e) {
                                var u = i++
                                    , c = !1;
                                o.push(void 0),
                                    a++,
                                    n.call(t, e).then((function (e) {
                                            c || (c = !0,
                                                o[u] = {
                                                    status: "fulfilled",
                                                    value: e
                                                },
                                            --a || r(o))
                                        }
                                    ), (function (e) {
                                            c || (c = !0,
                                                o[u] = {
                                                    status: "rejected",
                                                    reason: e
                                                },
                                            --a || r(o))
                                        }
                                    ))
                            }
                        )),
                        --a || r(o)
                    }
                ));
                return i.error && o(i.value),
                    n.promise
            }
        });
    Te({
        target: "Promise",
        stat: !0
    }, {
        any: function (e) {
            var t = this
                , n = $n.f(t)
                , r = n.resolve
                , o = n.reject
                , i = Jn((function () {
                    var n = qe(t.resolve)
                        , i = []
                        , a = 0
                        , u = 1
                        , c = !1;
                    Qt(e, (function (e) {
                            var s = a++
                                , f = !1;
                            i.push(void 0),
                                u++,
                                n.call(t, e).then((function (e) {
                                        f || c || (c = !0,
                                            r(e))
                                    }
                                ), (function (e) {
                                        f || c || (f = !0,
                                            i[s] = e,
                                        --u || o(new (oe("AggregateError"))(i, "No one promise resolved")))
                                    }
                                ))
                        }
                    )),
                    --u || o(new (oe("AggregateError"))(i, "No one promise resolved"))
                }
            ));
            return i.error && o(i.value),
                n.promise
        }
    }),
        Te({
            target: "Promise",
            stat: !0
        }, {
            try: function (e) {
                var t = $n.f(this)
                    , n = Jn(e);
                return (n.error ? t.reject : t.resolve)(n.value),
                    t.promise
            }
        });
    var Yr = {
        CSSRuleList: 0,
        CSSStyleDeclaration: 0,
        CSSValueList: 0,
        ClientRectList: 0,
        DOMRectList: 0,
        DOMStringList: 0,
        DOMTokenList: 1,
        DataTransferItemList: 0,
        FileList: 0,
        HTMLAllCollection: 0,
        HTMLCollection: 0,
        HTMLFormElement: 0,
        HTMLSelectElement: 0,
        MediaList: 0,
        MimeTypeArray: 0,
        NamedNodeMap: 0,
        NodeList: 1,
        PaintRequestList: 0,
        Plugin: 0,
        PluginArray: 0,
        SVGLengthList: 0,
        SVGNumberList: 0,
        SVGPathSegList: 0,
        SVGPointList: 0,
        SVGStringList: 0,
        SVGTransformList: 0,
        SourceBufferList: 0,
        StyleSheetList: 0,
        TextTrackCueList: 0,
        TextTrackList: 0,
        TouchList: 0
    }
        , Jr = ee.set
        , Kr = ee.getterFor("Array Iterator")
        , Zr = Gr(Array, "Array", (function (e, t) {
            Jr(this, {
                type: "Array Iterator",
                target: g(e),
                index: 0,
                kind: t
            })
        }
    ), (function () {
            var e = Kr(this)
                , t = e.target
                , n = e.kind
                , r = e.index++;
            return !t || r >= t.length ? (e.target = void 0,
                {
                    value: void 0,
                    done: !0
                }) : "keys" == n ? {
                value: r,
                done: !1
            } : "values" == n ? {
                value: t[r],
                done: !1
            } : {
                value: [r, t[r]],
                done: !1
            }
        }
    ), "values");
    Vt.Arguments = Vt.Array,
        ht("keys"),
        ht("values"),
        ht("entries");
    var Qr = Ne("iterator")
        , eo = Ne("toStringTag")
        , to = Zr.values;
    for (var no in Yr) {
        var ro = i[no]
            , oo = ro && ro.prototype;
        if (oo) {
            if (oo[Qr] !== to)
                try {
                    q(oo, Qr, to)
                } catch (wa) {
                    oo[Qr] = to
                }
            if (oo[eo] || q(oo, eo, no),
                Yr[no])
                for (var io in Zr)
                    if (oo[io] !== Zr[io])
                        try {
                            q(oo, io, Zr[io])
                        } catch (wa) {
                            oo[io] = Zr[io]
                        }
        }
    }
    var ao = Ne("iterator")
        , uo = !a((function () {
            var e = new URL("b?a=1&b=2&c=3", "http://a")
                , t = e.searchParams
                , n = "";
            return e.pathname = "c%20d",
                t.forEach((function (e, r) {
                        t.delete("b"),
                            n += r + e
                    }
                )),
            !t.sort || "http://a/c%20d?a=1&c=3" !== e.href || "3" !== t.get("c") || "a=1" !== String(new URLSearchParams("?a=1")) || !t[ao] || "a" !== new URL("https://a@b").username || "b" !== new URLSearchParams(new URLSearchParams("a=b")).get("a") || "xn--e1aybc" !== new URL("http://тест").host || "#%D0%B1" !== new URL("http://a#б").hash || "a1c3" !== n || "x" !== new URL("http://x", void 0).host
        }
    ))
        , co = function (e, t, n, r) {
        try {
            return r ? t(O(n)[0], n[1]) : t(n)
        } catch (wa) {
            throw Kt(e),
                wa
        }
    }
        , so = function (e, t, n) {
        var r = w(t);
        r in e ? T.f(e, r, l(0, n)) : e[r] = n
    }
        , fo = function (e) {
        var t, n, r, o, i, a, u = xe(e), c = "function" == typeof this ? this : Array, s = arguments.length,
            f = s > 1 ? arguments[1] : void 0, l = void 0 !== f, h = Jt(u), p = 0;
        if (l && (f = Ue(f, s > 2 ? arguments[2] : void 0, 2)),
        null == h || c == Array && $t(h))
            for (n = new c(t = se(u.length)); t > p; p++)
                a = l ? f(u[p], p) : u[p],
                    so(n, p, a);
        else
            for (i = (o = h.call(u)).next,
                     n = new c; !(r = i.call(o)).done; p++)
                a = l ? co(o, f, [r.value, p], !0) : r.value,
                    so(n, p, a);
        return n.length = p,
            n
    }
        , lo = /[^\0-\u007E]/
        , ho = /[.\u3002\uFF0E\uFF61]/g
        , po = "Overflow: input needs wider integers to process"
        , vo = Math.floor
        , yo = String.fromCharCode
        , go = function (e) {
        return e + 22 + 75 * (e < 26)
    }
        , mo = function (e, t, n) {
        var r = 0;
        for (e = n ? vo(e / 700) : e >> 1,
                 e += vo(e / t); e > 455; r += 36)
            e = vo(e / 35);
        return vo(r + 36 * e / (e + 38))
    }
        , wo = function (e) {
        var t, n, r = [], o = (e = function (e) {
            for (var t = [], n = 0, r = e.length; n < r;) {
                var o = e.charCodeAt(n++);
                if (o >= 55296 && o <= 56319 && n < r) {
                    var i = e.charCodeAt(n++);
                    56320 == (64512 & i) ? t.push(((1023 & o) << 10) + (1023 & i) + 65536) : (t.push(o),
                        n--)
                } else
                    t.push(o)
            }
            return t
        }(e)).length, i = 128, a = 0, u = 72;
        for (t = 0; t < e.length; t++)
            (n = e[t]) < 128 && r.push(yo(n));
        var c = r.length
            , s = c;
        for (c && r.push("-"); s < o;) {
            var f = 2147483647;
            for (t = 0; t < e.length; t++)
                (n = e[t]) >= i && n < f && (f = n);
            var l = s + 1;
            if (f - i > vo((2147483647 - a) / l))
                throw RangeError(po);
            for (a += (f - i) * l,
                     i = f,
                     t = 0; t < e.length; t++) {
                if ((n = e[t]) < i && ++a > 2147483647)
                    throw RangeError(po);
                if (n == i) {
                    for (var h = a, p = 36; ; p += 36) {
                        var v = p <= u ? 1 : p >= u + 26 ? 26 : p - u;
                        if (h < v)
                            break;
                        var d = h - v
                            , y = 36 - v;
                        r.push(yo(go(v + d % y))),
                            h = vo(d / y)
                    }
                    r.push(yo(go(h))),
                        u = mo(a, l, s == c),
                        a = 0,
                        ++s
                }
            }
            ++a,
                ++i
        }
        return r.join("")
    }
        , bo = function (e) {
        var t = Jt(e);
        if ("function" != typeof t)
            throw TypeError(String(e) + " is not iterable");
        return O(t.call(e))
    }
        , So = oe("fetch")
        , ko = oe("Headers")
        , Ro = Ne("iterator")
        , Lo = ee.set
        , Ao = ee.getterFor("URLSearchParams")
        , jo = ee.getterFor("URLSearchParamsIterator")
        , Eo = /\+/g
        , Oo = Array(4)
        , Po = function (e) {
        return Oo[e - 1] || (Oo[e - 1] = RegExp("((?:%[\\da-f]{2}){" + e + "})", "gi"))
    }
        , To = function (e) {
        try {
            return decodeURIComponent(e)
        } catch (wa) {
            return e
        }
    }
        , qo = function (e) {
        var t = e.replace(Eo, " ")
            , n = 4;
        try {
            return decodeURIComponent(t)
        } catch (wa) {
            for (; n;)
                t = t.replace(Po(n--), To);
            return t
        }
    }
        , Uo = /[!'()~]|%20/g
        , xo = {
        "!": "%21",
        "'": "%27",
        "(": "%28",
        ")": "%29",
        "~": "%7E",
        "%20": "+"
    }
        , Mo = function (e) {
        return xo[e]
    }
        , Io = function (e) {
        return encodeURIComponent(e).replace(Uo, Mo)
    }
        , Co = function (e, t) {
        if (t)
            for (var n, r, o = t.split("&"), i = 0; i < o.length;)
                (n = o[i++]).length && (r = n.split("="),
                    e.push({
                        key: qo(r.shift()),
                        value: qo(r.join("="))
                    }))
    }
        , Ho = function (e) {
        this.entries.length = 0,
            Co(this.entries, e)
    }
        , Fo = function (e, t) {
        if (e < t)
            throw TypeError("Not enough arguments")
    }
        , _o = Fr((function (e, t) {
            Lo(this, {
                type: "URLSearchParamsIterator",
                iterator: bo(Ao(e).entries),
                kind: t
            })
        }
    ), "Iterator", (function () {
            var e = jo(this)
                , t = e.kind
                , n = e.iterator.next()
                , r = n.value;
            return n.done || (n.value = "keys" === t ? r.key : "values" === t ? r.value : [r.key, r.value]),
                n
        }
    ))
        , No = function () {
        Gt(this, No, "URLSearchParams");
        var e, t, n, r, o, i, a, u, c, s = arguments.length > 0 ? arguments[0] : void 0, f = this, l = [];
        if (Lo(f, {
            type: "URLSearchParams",
            entries: l,
            updateURL: function () {
            },
            updateSearchParams: Ho
        }),
        void 0 !== s)
            if (m(s))
                if ("function" == typeof (e = Jt(s)))
                    for (n = (t = e.call(s)).next; !(r = n.call(t)).done;) {
                        if ((a = (i = (o = bo(O(r.value))).next).call(o)).done || (u = i.call(o)).done || !i.call(o).done)
                            throw TypeError("Expected sequence with length 2");
                        l.push({
                            key: a.value + "",
                            value: u.value + ""
                        })
                    }
                else
                    for (c in s)
                        S(s, c) && l.push({
                            key: c,
                            value: s[c] + ""
                        });
            else
                Co(l, "string" == typeof s ? "?" === s.charAt(0) ? s.slice(1) : s : s + "")
    }
        , Bo = No.prototype;
    _t(Bo, {
        append: function (e, t) {
            Fo(arguments.length, 2);
            var n = Ao(this);
            n.entries.push({
                key: e + "",
                value: t + ""
            }),
                n.updateURL()
        },
        delete: function (e) {
            Fo(arguments.length, 1);
            for (var t = Ao(this), n = t.entries, r = e + "", o = 0; o < n.length;)
                n[o].key === r ? n.splice(o, 1) : o++;
            t.updateURL()
        },
        get: function (e) {
            Fo(arguments.length, 1);
            for (var t = Ao(this).entries, n = e + "", r = 0; r < t.length; r++)
                if (t[r].key === n)
                    return t[r].value;
            return null
        },
        getAll: function (e) {
            Fo(arguments.length, 1);
            for (var t = Ao(this).entries, n = e + "", r = [], o = 0; o < t.length; o++)
                t[o].key === n && r.push(t[o].value);
            return r
        },
        has: function (e) {
            Fo(arguments.length, 1);
            for (var t = Ao(this).entries, n = e + "", r = 0; r < t.length;)
                if (t[r++].key === n)
                    return !0;
            return !1
        },
        set: function (e, t) {
            Fo(arguments.length, 1);
            for (var n, r = Ao(this), o = r.entries, i = !1, a = e + "", u = t + "", c = 0; c < o.length; c++)
                (n = o[c]).key === a && (i ? o.splice(c--, 1) : (i = !0,
                    n.value = u));
            i || o.push({
                key: a,
                value: u
            }),
                r.updateURL()
        },
        sort: function () {
            var e, t, n, r = Ao(this), o = r.entries, i = o.slice();
            for (o.length = 0,
                     n = 0; n < i.length; n++) {
                for (e = i[n],
                         t = 0; t < n; t++)
                    if (o[t].key > e.key) {
                        o.splice(t, 0, e);
                        break
                    }
                t === n && o.push(e)
            }
            r.updateURL()
        },
        forEach: function (e) {
            for (var t, n = Ao(this).entries, r = Ue(e, arguments.length > 1 ? arguments[1] : void 0, 3), o = 0; o < n.length;)
                r((t = n[o++]).value, t.key, this)
        },
        keys: function () {
            return new _o(this, "keys")
        },
        values: function () {
            return new _o(this, "values")
        },
        entries: function () {
            return new _o(this, "entries")
        }
    }, {
        enumerable: !0
    }),
        te(Bo, Ro, Bo.entries),
        te(Bo, "toString", (function () {
                for (var e, t = Ao(this).entries, n = [], r = 0; r < t.length;)
                    e = t[r++],
                        n.push(Io(e.key) + "=" + Io(e.value));
                return n.join("&")
            }
        ), {
            enumerable: !0
        }),
        Dt(No, "URLSearchParams"),
        Te({
            global: !0,
            forced: !uo
        }, {
            URLSearchParams: No
        }),
    uo || "function" != typeof So || "function" != typeof ko || Te({
        global: !0,
        enumerable: !0,
        forced: !0
    }, {
        fetch: function (e) {
            var t, n, r, o = [e];
            return arguments.length > 1 && (m(t = arguments[1]) && (n = t.body,
            "URLSearchParams" === Ct(n) && ((r = t.headers ? new ko(t.headers) : new ko).has("content-type") || r.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"),
                t = st(t, {
                    body: l(0, String(n)),
                    headers: l(0, r)
                }))),
                o.push(t)),
                So.apply(this, o)
        }
    });
    var Do, Xo = {
            URLSearchParams: No,
            getState: Ao
        }, Go = Or.codeAt, Vo = i.URL, Wo = Xo.URLSearchParams, zo = Xo.getState, $o = ee.set, Yo = ee.getterFor("URL"),
        Jo = Math.floor, Ko = Math.pow, Zo = /[A-Za-z]/, Qo = /[\d+-.A-Za-z]/, ei = /\d/, ti = /^(0x|0X)/,
        ni = /^[0-7]+$/, ri = /^\d+$/, oi = /^[\dA-Fa-f]+$/, ii = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,
        ai = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/, ui = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,
        ci = /[\u0009\u000A\u000D]/g, si = function (e, t) {
            var n, r, o;
            if ("[" == t.charAt(0)) {
                if ("]" != t.charAt(t.length - 1))
                    return "Invalid host";
                if (!(n = li(t.slice(1, -1))))
                    return "Invalid host";
                e.host = n
            } else if (wi(e)) {
                if (t = function (e) {
                    var t, n, r = [], o = e.toLowerCase().replace(ho, ".").split(".");
                    for (t = 0; t < o.length; t++)
                        n = o[t],
                            r.push(lo.test(n) ? "xn--" + wo(n) : n);
                    return r.join(".")
                }(t),
                    ii.test(t))
                    return "Invalid host";
                if (null === (n = fi(t)))
                    return "Invalid host";
                e.host = n
            } else {
                if (ai.test(t))
                    return "Invalid host";
                for (n = "",
                         r = fo(t),
                         o = 0; o < r.length; o++)
                    n += gi(r[o], pi);
                e.host = n
            }
        }, fi = function (e) {
            var t, n, r, o, i, a, u, c = e.split(".");
            if (c.length && "" == c[c.length - 1] && c.pop(),
            (t = c.length) > 4)
                return e;
            for (n = [],
                     r = 0; r < t; r++) {
                if ("" == (o = c[r]))
                    return e;
                if (i = 10,
                o.length > 1 && "0" == o.charAt(0) && (i = ti.test(o) ? 16 : 8,
                    o = o.slice(8 == i ? 1 : 2)),
                "" === o)
                    a = 0;
                else {
                    if (!(10 == i ? ri : 8 == i ? ni : oi).test(o))
                        return e;
                    a = parseInt(o, i)
                }
                n.push(a)
            }
            for (r = 0; r < t; r++)
                if (a = n[r],
                r == t - 1) {
                    if (a >= Ko(256, 5 - t))
                        return null
                } else if (a > 255)
                    return null;
            for (u = n.pop(),
                     r = 0; r < n.length; r++)
                u += n[r] * Ko(256, 3 - r);
            return u
        }, li = function (e) {
            var t, n, r, o, i, a, u, c = [0, 0, 0, 0, 0, 0, 0, 0], s = 0, f = null, l = 0, h = function () {
                return e.charAt(l)
            };
            if (":" == h()) {
                if (":" != e.charAt(1))
                    return;
                l += 2,
                    f = ++s
            }
            for (; h();) {
                if (8 == s)
                    return;
                if (":" != h()) {
                    for (t = n = 0; n < 4 && oi.test(h());)
                        t = 16 * t + parseInt(h(), 16),
                            l++,
                            n++;
                    if ("." == h()) {
                        if (0 == n)
                            return;
                        if (l -= n,
                        s > 6)
                            return;
                        for (r = 0; h();) {
                            if (o = null,
                            r > 0) {
                                if (!("." == h() && r < 4))
                                    return;
                                l++
                            }
                            if (!ei.test(h()))
                                return;
                            for (; ei.test(h());) {
                                if (i = parseInt(h(), 10),
                                null === o)
                                    o = i;
                                else {
                                    if (0 == o)
                                        return;
                                    o = 10 * o + i
                                }
                                if (o > 255)
                                    return;
                                l++
                            }
                            c[s] = 256 * c[s] + o,
                            2 != ++r && 4 != r || s++
                        }
                        if (4 != r)
                            return;
                        break
                    }
                    if (":" == h()) {
                        if (l++,
                            !h())
                            return
                    } else if (h())
                        return;
                    c[s++] = t
                } else {
                    if (null !== f)
                        return;
                    l++,
                        f = ++s
                }
            }
            if (null !== f)
                for (a = s - f,
                         s = 7; 0 != s && a > 0;)
                    u = c[s],
                        c[s--] = c[f + a - 1],
                        c[f + --a] = u;
            else if (8 != s)
                return;
            return c
        }, hi = function (e) {
            var t, n, o, i;
            if ("number" == typeof e) {
                for (t = [],
                         n = 0; n < 4; n++)
                    t.unshift(e % 256),
                        e = Jo(e / 256);
                return t.join(".")
            }
            if ("object" == r(e)) {
                for (t = "",
                         o = function (e) {
                             for (var t = null, n = 1, r = null, o = 0, i = 0; i < 8; i++)
                                 0 !== e[i] ? (o > n && (t = r,
                                     n = o),
                                     r = null,
                                     o = 0) : (null === r && (r = i),
                                     ++o);
                             return o > n && (t = r,
                                 n = o),
                                 t
                         }(e),
                         n = 0; n < 8; n++)
                    i && 0 === e[n] || (i && (i = !1),
                        o === n ? (t += n ? ":" : "::",
                            i = !0) : (t += e[n].toString(16),
                        n < 7 && (t += ":")));
                return "[" + t + "]"
            }
            return e
        }, pi = {}, vi = qt({}, pi, {
            " ": 1,
            '"': 1,
            "<": 1,
            ">": 1,
            "`": 1
        }), di = qt({}, vi, {
            "#": 1,
            "?": 1,
            "{": 1,
            "}": 1
        }), yi = qt({}, di, {
            "/": 1,
            ":": 1,
            ";": 1,
            "=": 1,
            "@": 1,
            "[": 1,
            "\\": 1,
            "]": 1,
            "^": 1,
            "|": 1
        }), gi = function (e, t) {
            var n = Go(e, 0);
            return n > 32 && n < 127 && !S(t, e) ? e : encodeURIComponent(e)
        }, mi = {
            ftp: 21,
            file: null,
            http: 80,
            https: 443,
            ws: 80,
            wss: 443
        }, wi = function (e) {
            return S(mi, e.scheme)
        }, bi = function (e) {
            return "" != e.username || "" != e.password
        }, Si = function (e) {
            return !e.host || e.cannotBeABaseURL || "file" == e.scheme
        }, ki = function (e, t) {
            var n;
            return 2 == e.length && Zo.test(e.charAt(0)) && (":" == (n = e.charAt(1)) || !t && "|" == n)
        }, Ri = function (e) {
            var t;
            return e.length > 1 && ki(e.slice(0, 2)) && (2 == e.length || "/" === (t = e.charAt(2)) || "\\" === t || "?" === t || "#" === t)
        }, Li = function (e) {
            var t = e.path
                , n = t.length;
            !n || "file" == e.scheme && 1 == n && ki(t[0], !0) || t.pop()
        }, Ai = function (e) {
            return "." === e || "%2e" === e.toLowerCase()
        }, ji = {}, Ei = {}, Oi = {}, Pi = {}, Ti = {}, qi = {}, Ui = {}, xi = {}, Mi = {}, Ii = {}, Ci = {}, Hi = {},
        Fi = {}, _i = {}, Ni = {}, Bi = {}, Di = {}, Xi = {}, Gi = {}, Vi = {}, Wi = {}, zi = function (e, t, n, r) {
            var o, i, a, u, c, s = n || ji, f = 0, l = "", h = !1, p = !1, v = !1;
            for (n || (e.scheme = "",
                e.username = "",
                e.password = "",
                e.host = null,
                e.port = null,
                e.path = [],
                e.query = null,
                e.fragment = null,
                e.cannotBeABaseURL = !1,
                t = t.replace(ui, "")),
                     t = t.replace(ci, ""),
                     o = fo(t); f <= o.length;) {
                switch (i = o[f],
                    s) {
                    case ji:
                        if (!i || !Zo.test(i)) {
                            if (n)
                                return "Invalid scheme";
                            s = Oi;
                            continue
                        }
                        l += i.toLowerCase(),
                            s = Ei;
                        break;
                    case Ei:
                        if (i && (Qo.test(i) || "+" == i || "-" == i || "." == i))
                            l += i.toLowerCase();
                        else {
                            if (":" != i) {
                                if (n)
                                    return "Invalid scheme";
                                l = "",
                                    s = Oi,
                                    f = 0;
                                continue
                            }
                            if (n && (wi(e) != S(mi, l) || "file" == l && (bi(e) || null !== e.port) || "file" == e.scheme && !e.host))
                                return;
                            if (e.scheme = l,
                                n)
                                return void (wi(e) && mi[e.scheme] == e.port && (e.port = null));
                            l = "",
                                "file" == e.scheme ? s = _i : wi(e) && r && r.scheme == e.scheme ? s = Pi : wi(e) ? s = xi : "/" == o[f + 1] ? (s = Ti,
                                    f++) : (e.cannotBeABaseURL = !0,
                                    e.path.push(""),
                                    s = Gi)
                        }
                        break;
                    case Oi:
                        if (!r || r.cannotBeABaseURL && "#" != i)
                            return "Invalid scheme";
                        if (r.cannotBeABaseURL && "#" == i) {
                            e.scheme = r.scheme,
                                e.path = r.path.slice(),
                                e.query = r.query,
                                e.fragment = "",
                                e.cannotBeABaseURL = !0,
                                s = Wi;
                            break
                        }
                        s = "file" == r.scheme ? _i : qi;
                        continue;
                    case Pi:
                        if ("/" != i || "/" != o[f + 1]) {
                            s = qi;
                            continue
                        }
                        s = Mi,
                            f++;
                        break;
                    case Ti:
                        if ("/" == i) {
                            s = Ii;
                            break
                        }
                        s = Xi;
                        continue;
                    case qi:
                        if (e.scheme = r.scheme,
                        i == Do)
                            e.username = r.username,
                                e.password = r.password,
                                e.host = r.host,
                                e.port = r.port,
                                e.path = r.path.slice(),
                                e.query = r.query;
                        else if ("/" == i || "\\" == i && wi(e))
                            s = Ui;
                        else if ("?" == i)
                            e.username = r.username,
                                e.password = r.password,
                                e.host = r.host,
                                e.port = r.port,
                                e.path = r.path.slice(),
                                e.query = "",
                                s = Vi;
                        else {
                            if ("#" != i) {
                                e.username = r.username,
                                    e.password = r.password,
                                    e.host = r.host,
                                    e.port = r.port,
                                    e.path = r.path.slice(),
                                    e.path.pop(),
                                    s = Xi;
                                continue
                            }
                            e.username = r.username,
                                e.password = r.password,
                                e.host = r.host,
                                e.port = r.port,
                                e.path = r.path.slice(),
                                e.query = r.query,
                                e.fragment = "",
                                s = Wi
                        }
                        break;
                    case Ui:
                        if (!wi(e) || "/" != i && "\\" != i) {
                            if ("/" != i) {
                                e.username = r.username,
                                    e.password = r.password,
                                    e.host = r.host,
                                    e.port = r.port,
                                    s = Xi;
                                continue
                            }
                            s = Ii
                        } else
                            s = Mi;
                        break;
                    case xi:
                        if (s = Mi,
                        "/" != i || "/" != l.charAt(f + 1))
                            continue;
                        f++;
                        break;
                    case Mi:
                        if ("/" != i && "\\" != i) {
                            s = Ii;
                            continue
                        }
                        break;
                    case Ii:
                        if ("@" == i) {
                            h && (l = "%40" + l),
                                h = !0,
                                a = fo(l);
                            for (var d = 0; d < a.length; d++) {
                                var y = a[d];
                                if (":" != y || v) {
                                    var g = gi(y, yi);
                                    v ? e.password += g : e.username += g
                                } else
                                    v = !0
                            }
                            l = ""
                        } else if (i == Do || "/" == i || "?" == i || "#" == i || "\\" == i && wi(e)) {
                            if (h && "" == l)
                                return "Invalid authority";
                            f -= fo(l).length + 1,
                                l = "",
                                s = Ci
                        } else
                            l += i;
                        break;
                    case Ci:
                    case Hi:
                        if (n && "file" == e.scheme) {
                            s = Bi;
                            continue
                        }
                        if (":" != i || p) {
                            if (i == Do || "/" == i || "?" == i || "#" == i || "\\" == i && wi(e)) {
                                if (wi(e) && "" == l)
                                    return "Invalid host";
                                if (n && "" == l && (bi(e) || null !== e.port))
                                    return;
                                if (u = si(e, l))
                                    return u;
                                if (l = "",
                                    s = Di,
                                    n)
                                    return;
                                continue
                            }
                            "[" == i ? p = !0 : "]" == i && (p = !1),
                                l += i
                        } else {
                            if ("" == l)
                                return "Invalid host";
                            if (u = si(e, l))
                                return u;
                            if (l = "",
                                s = Fi,
                            n == Hi)
                                return
                        }
                        break;
                    case Fi:
                        if (!ei.test(i)) {
                            if (i == Do || "/" == i || "?" == i || "#" == i || "\\" == i && wi(e) || n) {
                                if ("" != l) {
                                    var m = parseInt(l, 10);
                                    if (m > 65535)
                                        return "Invalid port";
                                    e.port = wi(e) && m === mi[e.scheme] ? null : m,
                                        l = ""
                                }
                                if (n)
                                    return;
                                s = Di;
                                continue
                            }
                            return "Invalid port"
                        }
                        l += i;
                        break;
                    case _i:
                        if (e.scheme = "file",
                        "/" == i || "\\" == i)
                            s = Ni;
                        else {
                            if (!r || "file" != r.scheme) {
                                s = Xi;
                                continue
                            }
                            if (i == Do)
                                e.host = r.host,
                                    e.path = r.path.slice(),
                                    e.query = r.query;
                            else if ("?" == i)
                                e.host = r.host,
                                    e.path = r.path.slice(),
                                    e.query = "",
                                    s = Vi;
                            else {
                                if ("#" != i) {
                                    Ri(o.slice(f).join("")) || (e.host = r.host,
                                        e.path = r.path.slice(),
                                        Li(e)),
                                        s = Xi;
                                    continue
                                }
                                e.host = r.host,
                                    e.path = r.path.slice(),
                                    e.query = r.query,
                                    e.fragment = "",
                                    s = Wi
                            }
                        }
                        break;
                    case Ni:
                        if ("/" == i || "\\" == i) {
                            s = Bi;
                            break
                        }
                        r && "file" == r.scheme && !Ri(o.slice(f).join("")) && (ki(r.path[0], !0) ? e.path.push(r.path[0]) : e.host = r.host),
                            s = Xi;
                        continue;
                    case Bi:
                        if (i == Do || "/" == i || "\\" == i || "?" == i || "#" == i) {
                            if (!n && ki(l))
                                s = Xi;
                            else if ("" == l) {
                                if (e.host = "",
                                    n)
                                    return;
                                s = Di
                            } else {
                                if (u = si(e, l))
                                    return u;
                                if ("localhost" == e.host && (e.host = ""),
                                    n)
                                    return;
                                l = "",
                                    s = Di
                            }
                            continue
                        }
                        l += i;
                        break;
                    case Di:
                        if (wi(e)) {
                            if (s = Xi,
                            "/" != i && "\\" != i)
                                continue
                        } else if (n || "?" != i)
                            if (n || "#" != i) {
                                if (i != Do && (s = Xi,
                                "/" != i))
                                    continue
                            } else
                                e.fragment = "",
                                    s = Wi;
                        else
                            e.query = "",
                                s = Vi;
                        break;
                    case Xi:
                        if (i == Do || "/" == i || "\\" == i && wi(e) || !n && ("?" == i || "#" == i)) {
                            if (".." === (c = (c = l).toLowerCase()) || "%2e." === c || ".%2e" === c || "%2e%2e" === c ? (Li(e),
                            "/" == i || "\\" == i && wi(e) || e.path.push("")) : Ai(l) ? "/" == i || "\\" == i && wi(e) || e.path.push("") : ("file" == e.scheme && !e.path.length && ki(l) && (e.host && (e.host = ""),
                                l = l.charAt(0) + ":"),
                                e.path.push(l)),
                                l = "",
                            "file" == e.scheme && (i == Do || "?" == i || "#" == i))
                                for (; e.path.length > 1 && "" === e.path[0];)
                                    e.path.shift();
                            "?" == i ? (e.query = "",
                                s = Vi) : "#" == i && (e.fragment = "",
                                s = Wi)
                        } else
                            l += gi(i, di);
                        break;
                    case Gi:
                        "?" == i ? (e.query = "",
                            s = Vi) : "#" == i ? (e.fragment = "",
                            s = Wi) : i != Do && (e.path[0] += gi(i, pi));
                        break;
                    case Vi:
                        n || "#" != i ? i != Do && ("'" == i && wi(e) ? e.query += "%27" : e.query += "#" == i ? "%23" : gi(i, pi)) : (e.fragment = "",
                            s = Wi);
                        break;
                    case Wi:
                        i != Do && (e.fragment += gi(i, vi))
                }
                f++
            }
        }, $i = function (e) {
            var t, n, r = Gt(this, $i, "URL"), o = arguments.length > 1 ? arguments[1] : void 0, i = String(e), a = $o(r, {
                type: "URL"
            });
            if (void 0 !== o)
                if (o instanceof $i)
                    t = Yo(o);
                else if (n = zi(t = {}, String(o)))
                    throw TypeError(n);
            if (n = zi(a, i, null, t))
                throw TypeError(n);
            var c = a.searchParams = new Wo
                , s = zo(c);
            s.updateSearchParams(a.query),
                s.updateURL = function () {
                    a.query = String(c) || null
                }
                ,
            u || (r.href = Ji.call(r),
                r.origin = Ki.call(r),
                r.protocol = Zi.call(r),
                r.username = Qi.call(r),
                r.password = ea.call(r),
                r.host = ta.call(r),
                r.hostname = na.call(r),
                r.port = ra.call(r),
                r.pathname = oa.call(r),
                r.search = ia.call(r),
                r.searchParams = aa.call(r),
                r.hash = ua.call(r))
        }, Yi = $i.prototype, Ji = function () {
            var e = Yo(this)
                , t = e.scheme
                , n = e.username
                , r = e.password
                , o = e.host
                , i = e.port
                , a = e.path
                , u = e.query
                , c = e.fragment
                , s = t + ":";
            return null !== o ? (s += "//",
            bi(e) && (s += n + (r ? ":" + r : "") + "@"),
                s += hi(o),
            null !== i && (s += ":" + i)) : "file" == t && (s += "//"),
                s += e.cannotBeABaseURL ? a[0] : a.length ? "/" + a.join("/") : "",
            null !== u && (s += "?" + u),
            null !== c && (s += "#" + c),
                s
        }, Ki = function () {
            var e = Yo(this)
                , t = e.scheme
                , n = e.port;
            if ("blob" == t)
                try {
                    return new URL(t.path[0]).origin
                } catch (wa) {
                    return "null"
                }
            return "file" != t && wi(e) ? t + "://" + hi(e.host) + (null !== n ? ":" + n : "") : "null"
        }, Zi = function () {
            return Yo(this).scheme + ":"
        }, Qi = function () {
            return Yo(this).username
        }, ea = function () {
            return Yo(this).password
        }, ta = function () {
            var e = Yo(this)
                , t = e.host
                , n = e.port;
            return null === t ? "" : null === n ? hi(t) : hi(t) + ":" + n
        }, na = function () {
            var e = Yo(this).host;
            return null === e ? "" : hi(e)
        }, ra = function () {
            var e = Yo(this).port;
            return null === e ? "" : String(e)
        }, oa = function () {
            var e = Yo(this)
                , t = e.path;
            return e.cannotBeABaseURL ? t[0] : t.length ? "/" + t.join("/") : ""
        }, ia = function () {
            var e = Yo(this).query;
            return e ? "?" + e : ""
        }, aa = function () {
            return Yo(this).searchParams
        }, ua = function () {
            var e = Yo(this).fragment;
            return e ? "#" + e : ""
        }, ca = function (e, t) {
            return {
                get: e,
                set: t,
                configurable: !0,
                enumerable: !0
            }
        };
    if (u && rt(Yi, {
        href: ca(Ji, (function (e) {
                var t = Yo(this)
                    , n = String(e)
                    , r = zi(t, n);
                if (r)
                    throw TypeError(r);
                zo(t.searchParams).updateSearchParams(t.query)
            }
        )),
        origin: ca(Ki),
        protocol: ca(Zi, (function (e) {
                var t = Yo(this);
                zi(t, String(e) + ":", ji)
            }
        )),
        username: ca(Qi, (function (e) {
                var t = Yo(this)
                    , n = fo(String(e));
                if (!Si(t)) {
                    t.username = "";
                    for (var r = 0; r < n.length; r++)
                        t.username += gi(n[r], yi)
                }
            }
        )),
        password: ca(ea, (function (e) {
                var t = Yo(this)
                    , n = fo(String(e));
                if (!Si(t)) {
                    t.password = "";
                    for (var r = 0; r < n.length; r++)
                        t.password += gi(n[r], yi)
                }
            }
        )),
        host: ca(ta, (function (e) {
                var t = Yo(this);
                t.cannotBeABaseURL || zi(t, String(e), Ci)
            }
        )),
        hostname: ca(na, (function (e) {
                var t = Yo(this);
                t.cannotBeABaseURL || zi(t, String(e), Hi)
            }
        )),
        port: ca(ra, (function (e) {
                var t = Yo(this);
                Si(t) || ("" == (e = String(e)) ? t.port = null : zi(t, e, Fi))
            }
        )),
        pathname: ca(oa, (function (e) {
                var t = Yo(this);
                t.cannotBeABaseURL || (t.path = [],
                    zi(t, e + "", Di))
            }
        )),
        search: ca(ia, (function (e) {
                var t = Yo(this);
                "" == (e = String(e)) ? t.query = null : ("?" == e.charAt(0) && (e = e.slice(1)),
                    t.query = "",
                    zi(t, e, Vi)),
                    zo(t.searchParams).updateSearchParams(t.query)
            }
        )),
        searchParams: ca(aa),
        hash: ca(ua, (function (e) {
                var t = Yo(this);
                "" != (e = String(e)) ? ("#" == e.charAt(0) && (e = e.slice(1)),
                    t.fragment = "",
                    zi(t, e, Wi)) : t.fragment = null
            }
        ))
    }),
        te(Yi, "toJSON", (function () {
                return Ji.call(this)
            }
        ), {
            enumerable: !0
        }),
        te(Yi, "toString", (function () {
                return Ji.call(this)
            }
        ), {
            enumerable: !0
        }),
        Vo) {
        var sa = Vo.createObjectURL
            , fa = Vo.revokeObjectURL;
        sa && te($i, "createObjectURL", (function (e) {
                return sa.apply(Vo, arguments)
            }
        )),
        fa && te($i, "revokeObjectURL", (function (e) {
                return fa.apply(Vo, arguments)
            }
        ))
    }
    Dt($i, "URL"),
        Te({
            global: !0,
            forced: !uo,
            sham: !u
        }, {
            URL: $i
        }),
        Te({
            target: "URL",
            proto: !0,
            enumerable: !0
        }, {
            toJSON: function () {
                return URL.prototype.toString.call(this)
            }
        });
    var la = function (e, t) {
        if (!(e instanceof t))
            throw new TypeError("Cannot call a class as a function")
    };

    function ha(e, t) {
        for (var n = 0; n < t.length; n++) {
            var r = t[n];
            r.enumerable = r.enumerable || !1,
                r.configurable = !0,
            "value" in r && (r.writable = !0),
                Object.defineProperty(e, r.key, r)
        }
    }

    var pa = function (e, t, n) {
        return t && ha(e.prototype, t),
        n && ha(e, n),
            e
    }
        , va = "fetch" in window
        , da = "Request" in window
        , ya = "Headers" in window
        , ga = {
        POST: "*",
        PUT: "*",
        PATCH: "*",
        DELETE: "*"
    }
        , ma = new (function () {
        function e() {
            la(this, e),
                this.tokenHeaderName = "x-secsdk-csrf-token",
                this.tokenFetchTimeout = 1e4,
                this.secsdkVersionHeaderName = "x-secsdk-csrf-version",
                this.nativeXMLHttpRequestOpen = window.XMLHttpRequest.prototype.open,
                this.nativeXMLHttpRequestSend = window.XMLHttpRequest.prototype.send,
                this.nativeXMLHttpRequestSetRequestHeader = window.XMLHttpRequest.prototype.setRequestHeader,
                this.nativeFetch = window.fetch,
                this.tokenMap = {},
                this.protectionConfig = {},
                this.secsdkVersion = "1.2.7",
                this.monkeyPatchXMLHttpRequest(),
                this.monkeyPatchFetch()
        }

        return pa(e, [{
            key: "setProtectedHost",
            value: function () {
                var e = this
                    , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window.location.host;
                this.protectionConfig = {},
                    "string" == typeof t ? this.protectionConfig[t] = Object.assign({}, ga) : Array.isArray(t) ? t.forEach((function (t) {
                            e.protectionConfig[t] = Object.assign({}, ga)
                        }
                    )) : "[object Object]" === Object.prototype.toString.call(t) && Object.keys(t).forEach((function (n) {
                            e.protectionConfig[n] = Object.assign({}, ga);
                            var r = t[n];
                            "[object Object]" === Object.prototype.toString.call(r) && Object.keys(r).forEach((function (t) {
                                    e.protectionConfig[n][t.toUpperCase()] = r[t]
                                }
                            ))
                        }
                    ))
            }
        }, {
            key: "fetchToken",
            value: function () {
                var e = this
                    , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window.location.host
                    , n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : window.location.pathname;
                return Array.isArray(t) ? Promise.all(t.map((function (t) {
                        return e.fetchToken(t)
                    }
                ))) : (this.tokenMap[t] || (this.tokenMap[t] = this.fetchTokenFromServer(t, n).then((function (n) {
                        return e.tokenMap[t] = n,
                            n
                    }
                ))),
                    Promise.resolve(this.tokenMap[t]).then((function (r) {
                            return r.expiredAt < Date.now() ? (delete e.tokenMap[t],
                                e.fetchToken(t, n)) : r
                        }
                    )))
            }
        }, {
            key: "fetchTokenFromLocal",
            value: function (e) {
                var t = this.tokenMap[e];
                return !t || t instanceof Promise ? "DOWNGRADE" : t.value
            }
        }, {
            key: "fetchTokenFromServer",
            value: function (e, t) {
                var n = this;
                return new Promise((function (r) {
                        var o = new XMLHttpRequest
                            , i = {
                            value: "DOWNGRADE",
                            expiredAt: Date.now() + 1e3
                        };
                        o.addEventListener("load", (function () {
                                if (200 !== o.status)
                                    return console.error(new Error("Failed to fetch csrf token: host=".concat(e, " status=").concat(o.status, " statusText=").concat(o.statusText))),
                                        void r(i);
                                var t = []
                                    , n = o.getResponseHeader("x-ware-csrf-token");
                                if (!n)
                                    return console.warn("Failed to get csrf token: host=".concat(e, " xWareCsrfToken=").concat(n)),
                                        void r(i);
                                if ("0" !== (t = n.split(","))[0])
                                    return console.warn("Failed to fetch csrf token: host=".concat(e, " status_code=").concat(t[0], " message=").concat(t[3])),
                                        void r(i);
                                if (!t[1])
                                    return console.warn("Failed to fetch csrf token, empty token: host=".concat(e, " data=").concat(t)),
                                        void r(i);
                                var a = parseInt(t[2], 10) || 864e5;
                                r({
                                    value: t[1],
                                    expiredAt: Date.now() + a
                                })
                            }
                        )),
                            o.addEventListener("error", (function () {
                                    console.error(new Error("Failed to fetch csrf token: host=".concat(e, " error=network request failed"))),
                                        r(i)
                                }
                            )),
                            o.addEventListener("abort", (function () {
                                    console.error(new Error("Failed to fetch csrf token: host=".concat(e, " error=network request aborted"))),
                                        r(i)
                                }
                            )),
                            o.addEventListener("timeout", (function () {
                                    console.error(new Error("Failed to fetch csrf token: host=".concat(e, " error=timeout"))),
                                        r(i)
                                }
                            ));
                        var a = ["http:", "https:"].includes(window.location.protocol) ? window.location.protocol : "https:";
                        n.nativeXMLHttpRequestOpen.call(o, "HEAD", "".concat(a, "//").concat(e).concat(t)),
                            n.nativeXMLHttpRequestSetRequestHeader.call(o, "x-secsdk-csrf-request", "1"),
                            n.nativeXMLHttpRequestSetRequestHeader.call(o, n.secsdkVersionHeaderName, n.secsdkVersion),
                            o.withCredentials = !0,
                            o.timeout = n.tokenFetchTimeout,
                            n.nativeXMLHttpRequestSend.call(o)
                    }
                ))
            }
        }, {
            key: "shouldProtectRequest",
            value: function (e, t, n) {
                t = t.toUpperCase();
                var r = this.protectionConfig;
                if (!r[e])
                    return !1;
                if (!r[e][t])
                    return !1;
                var o = r[e][t];
                return o instanceof RegExp ? o.test(n) : Array.isArray(o) ? o.some((function (e) {
                        return e instanceof RegExp ? e.test(n) : e === n
                    }
                )) : "*" === o || o === n
            }
        }, {
            key: "monkeyPatchXMLHttpRequest",
            value: function () {
                var e = this;
                XMLHttpRequest.prototype.open = function () {
                    this.openArgs = arguments,
                        e.nativeXMLHttpRequestOpen.apply(this, arguments)
                }
                    ,
                    XMLHttpRequest.prototype.send = function () {
                        var t = this
                            , n = this.openArgs
                            , r = arguments
                            , o = n[0] || "GET"
                            , i = new URL(n[1], window.location.href);
                        if (!e.shouldProtectRequest(i.host, o, i.pathname))
                            // return e.nativeXMLHttpRequestSend.apply(this, r);
                            var url_params = this._byted_url;
                            return url_params.includes('_signature=') ? url_params : ""
                        if (n.length >= 3 && !n[2]) {
                            // var a = e.fetchTokenFromLocal(i.host);
                            // return this.setRequestHeader(e.tokenHeaderName, a),
                            //     e.nativeXMLHttpRequestSend.apply(this, r)

                            this.setRequestHeader(e.tokenHeaderName, a)
                            var url_params = this._byted_url;
                            return url_params.includes('_signature=') ? url_params : ""

                        }
                        e.fetchToken(i.host, i.pathname).then((function (n) {
                                t.setRequestHeader(e.tokenHeaderName, n.value),
                                    e.nativeXMLHttpRequestSend.apply(t, r)
                            }
                        ))
                    }
            }
        }, {
            key: "monkeyPatchFetch",
            value: function () {
                if (va) {
                    var e = this;
                    window.fetch = function (t, n) {
                        var r, o, i = this;
                        da && t instanceof Request ? (r = t.url,
                            o = t.method) : (r = t,
                            o = n && n.method ? n.method : "GET");
                        var a = new URL(r, window.location.href);
                        return e.shouldProtectRequest(a.host, o, a.pathname) ? e.fetchToken(a.host, a.pathname).then((function (r) {
                                if (da && t instanceof Request)
                                    t.headers.set(e.tokenHeaderName, r.value);
                                else if ((n = n || {}).headers = n.headers || {},
                                ya && n.headers instanceof Headers)
                                    n.headers.set(e.tokenHeaderName, r.value);
                                else if (Array.isArray(n.headers)) {
                                    var o = !1;
                                    n.headers.forEach((function (t) {
                                            t[0] === e.tokenHeaderName && (t[1] = r.value,
                                                o = !0)
                                        }
                                    )),
                                    o || n.headers.push([e.tokenHeaderName, r.value])
                                } else
                                    n.headers[e.tokenHeaderName] = r.value;
                                return e.nativeFetch.apply(i, [t, n])
                            }
                        )) : e.nativeFetch.apply(this, [t, n])
                    }
                }
            }
        }]),
            e
    }());
    e.csrf = ma,
        Object.defineProperty(e, "__esModule", {
            value: !0
        })
    window.byted_acrawler.init({
        aid: 6383,
        dfp: false,
        boe: false,
        intercept: true,
        enablePathList: ["/aweme/v1/*", "/aweme/v2/*"]
    })

    function get_sign(e) {
        function trim(t) {
            return t.replace(/^\s*/, "").replace(/\s*$/, "")
        }

        function isArray(e) {
            return "[object Array]" === Object.prototype.toString.call(e)
        }

        function isDate(e) {
            return "[object Date]" === Object.prototype.toString.call(e)
        }

        function isObject(e) {
            return null !== e && "object" == typeof e
        }

        function forEach(e, t) {
            if (null != e)
                if ("object" != typeof e && (e = [e]),
                    isArray(e))
                    for (var n = 0, r = e.length; n < r; n++)
                        t.call(null, e[n], n, e);
                else
                    for (var o in e)
                        Object.prototype.hasOwnProperty.call(e, o) && t.call(null, e[o], o, e)
        }

        function isString(val) {
            return typeof val === 'string';
        }

        function isURLSearchParams(e) {
            return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams
        }

        function urlEncodeReplace(e) {
            return encodeURIComponent(e).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]")
        }

        function isURLSameOrigin(requestURL) {
            var msie = /(msie|trident)/i.test(navigator.userAgent);
            var urlParsingNode = document.createElement('a');
            var originURL = resolveURL(window.location.href);

            function resolveURL(url) {
                var href = url;

                if (msie) {
                    urlParsingNode.setAttribute('href', href);
                    href = urlParsingNode.href;
                }

                urlParsingNode.setAttribute('href', href);
                return {
                    href: urlParsingNode.href,
                    protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
                    host: urlParsingNode.host,
                    search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
                    hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
                    hostname: urlParsingNode.hostname,
                    port: urlParsingNode.port,
                    pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
                        urlParsingNode.pathname :
                        '/' + urlParsingNode.pathname
                };
            }

            var parsed = (isString(requestURL)) ? resolveURL(requestURL) : requestURL;
            return (parsed.protocol === originURL.protocol &&
                parsed.host === originURL.host);
        }

        function urlJOIN(e, t, n) {
            if (!t)
                return e;
            var i;
            if (n)
                i = n(t);
            else if (isURLSearchParams(t))
                i = t.toString();
            else {
                var a = [];
                forEach(t, (function (e, t) {
                        null != e && (isArray(e) ? t += "[]" : e = [e],
                            forEach(e, (function (e) {
                                    isDate(e) ? e = e.toISOString() : isObject(e) && (e = JSON.stringify(e)),
                                        a.push(urlEncodeReplace(t) + "=" + urlEncodeReplace(e))
                                }
                            )))
                    }
                )),
                    i = a.join("&")
            }
            if (i) {
                var s = e.indexOf("#");
                -1 !== s && (e = e.slice(0, s)),
                    e += (-1 === e.indexOf("?") ? "?" : "&") + i
            }
            return e
        }

        function isUndefined(e) {
            return void 0 === e
        }

        function u(e) {
            var t, n, i, a = {};
            return e ? (forEach(e.split("\n"), (function (e) {
                    if (i = e.indexOf(":"),
                        t = trim(e.substr(0, i)).toLowerCase(),
                        n = trim(e.substr(i + 1)),
                        t) {
                        if (a[t] && o.indexOf(t) >= 0)
                            return;
                        a[t] = "set-cookie" === t ? (a[t] ? a[t] : []).concat([n]) : a[t] ? a[t] + ", " + n : n
                    }
                }
            )),
                a) : a
        }
        function read(t) {
            var e = document.cookie.match(new RegExp("(^|;\\s*)(" + t + ")=([^;]*)"));
            return e ? decodeURIComponent(e[3]) : null
        }

        function send_xhr() {
            var f = e.data
                , d = e.headers;
            try {
                if (f && JSON.parse(f)) {
                    delete d["Content-Type"];
                }
            } catch (w) {
            }
            var h = new XMLHttpRequest;
            h.open.y = 1;
            h.send.y = 1;
            h.setRequestHeader.y = 1;

            if (e.auth) {
                var p = e.auth.username || ""
                    , m = e.auth.password ? unescape(encodeURIComponent(e.auth.password)) : "";
                d.Authorization = "Basic " + btoa(p + ":" + m)
            }
            var v = e.url;
            if (h.open(e.method.toUpperCase(), urlJOIN(v, e.params, e.paramsSerializer), !0),
                h.timeout = e.timeout,
                h.onreadystatechange = function () {
                    if (h && 4 === h.readyState && (0 !== h.status || h.responseURL && 0 === h.responseURL.indexOf("file:"))) {
                        var r = "getAllResponseHeaders" in h ? u(h.getAllResponseHeaders()) : null
                            , i = {
                            data: e.responseType && "text" !== e.responseType ? h.response : h.responseText,
                            status: h.status,
                            statusText: h.statusText,
                            headers: r,
                            config: e,
                            request: h
                        };
                        // h = null
                        return h.responseText
                    }
                }
                ,
                h.onabort = function () {
                    h = null
                    console.log("error: onabort")
                }
                ,
                h.onerror = function () {
                    h = null
                    console.log("Network Error")
                }
                ,
                h.ontimeout = function () {
                    h = null
                    console.log("ECONNABORTED")
                }) {
                var g = (e.withCredentials || isURLSameOrigin(v)) && e.xsrfCookieName ? read(e.xsrfCookieName) : void 0;
                g && (d[e.xsrfHeaderName] = g)
            }
            if ("setRequestHeader" in h && forEach(d, (function (e, t) {
                    void 0 === f && "content-type" === t.toLowerCase() ? delete d[t] : h.setRequestHeader(t, e)
                }
            )),
            isUndefined(e.withCredentials) || (h.withCredentials = !!e.withCredentials),
                e.responseType)
                try {
                    h.responseType = e.responseType
                } catch (t) {
                    if ("json" !== e.responseType)
                        throw t
                }
            "function" == typeof e.onDownloadProgress && h.addEventListener("progress", e.onDownloadProgress),
            "function" == typeof e.onUploadProgress && h.upload && h.upload.addEventListener("progress", e.onUploadProgress),
            e.cancelToken && e.cancelToken.promise.then((function (e) {
                    h && (h.abort(),
                        n(e),
                        h = null)
                }
            )),
            f || (f = null)
            return h.send(f);
        }

        return send_xhr()
    }

    // var params = {
    //     "url": "/aweme/v1/web/channel/feed/",
    //     "method": "get",
    //     "headers": {
    //         "Accept": "application/json, text/plain, */*",
    //         "withCredentials": true
    //     },
    //     "params": {
    //         "device_platform": "webapp",
    //         "aid": 6383,
    //         "channel": "channel_pc_web",
    //         "tag_id": "",
    //         "count": 10,
    //         "version_code": "160100",
    //         "version_name": "16.1.0",
    //         "cookie_enabled": true,
    //         "screen_width": 1920,
    //         "screen_height": 1080,
    //         "browser_language": "zh-CN",
    //         "browser_platform": "Win32",
    //         "browser_name": "Mozilla",
    //         "browser_version": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36",
    //         "browser_online": true
    //     },
    //     "baseURL": "",
    //     "timeout": 0,
    //     "xsrfCookieName": "XSRF-TOKEN",
    //     "xsrfHeaderName": "X-XSRF-TOKEN",
    //     "maxContentLength": -1,
    //     "maxBodyLength": -1
    // }
    return get_sign(params)

}

function get_url_params(params){

    let result = secsdk(window, params)
    console.log("生成_signature:", result)
    return result
}


module.exports = {
    get_url_params,
}
